Articles of PHP的

file_put_contents不创buildtxt文件

我目前有一个PHP脚本,当浏览器浏览器浏览到网页时正在运行。 我想要做的是编写一个文本文件,当脚本运行存储一个variables。 该文件夹的所有者是Apache,但每个人都已经阅读写,严格的testing目的。 (我认为这可能是一个权限问题)在服务器上启用SELINUX,当我从控制台运行脚本时,它会创build文本文件,并且在正确的目录中。 file_put_contents("My working file location", $myString); 我使用这一行来尝试编写和创build文本文件,我知道我的文件位置工作,因为我可以运行它,并在离线模式下创build它,IE通过控制台运行它。 问题是我试图写的variables是通过HTTP Post填充的,当我通过浏览器运行脚本,或者当Apache运行脚本时,它不会写入或创build文件。 我需要做什么来允许访问写/改变语法来获得这个脚本来写这个文本文件?

PHP is_writable()函数对于可写目录总是返回false

我正在尝试在使用yum安装Apache 2.4.6和PHP 5.4.16的Red Hat 7 Amazon EC2实例(ami-8cff51fb)中安装基于PHP的软件包。 安装失败,因为它表示一个特定的目录需要由具有0755或0775权限的Web服务器写入。 有问题的目录具有root:apache权限的0775权限root:apache所有权。 我已经validation了httpd进程正在由apache用户运行,并且apache用户是apache组的成员。 如果我编辑/etc/passwd临时给apache用户一个loginshell然后su到那个帐户,我可以使用touch命令在目录内以apache用户的方式手动创build文件。 我查看了安装程序脚本的源代码,发现它失败了,因为PHP的is_writable()函数正在为有问题的目录返回false。 我创build了一个单独的testingPHP脚本来隔离和validation我看到的行为: <?php $dir = '/var/www/html/limesurvey/tmp'; if (is_writable($dir)) { echo $dir, ' is writable'; } else { echo $dir, ' is NOT writable'; } ?> 这将输出NOT可写消息。 如果我将$dir改为/tmp那么它正确地输出那个/tmp是可写的。 如果我将目录权限更改为0777和/或将所有权更改为apache:apache则PHP仍然报告该目录不可写。 我甚至尝试创build一个具有相同权限和所有权的/test目录,我的testing脚本仍然报告它不可写。 我真的无法解释这种行为,所以任何想法都会受到欢迎! 提前致谢。 下面给出了/var/www/html/limesurvey的目录列表。 根据Lime Survey的安装说明 , tmp和upload目录拥有0775权限。 test.php是我上面提到的testing脚本。 [ec2-user@ip-xx-xx-xxx limesurvey]$ pwd /var/www/html/limesurvey [ec2-user@ip-xx-xx-xxx limesurvey]$ ls […]

在Sh / Bash和php中parsingconfiguration参数的最佳/最简单的方法

我得到了每个PHP项目(大约25!),一些sh脚本,可以帮助我进行部署,回购同步,数据库导出/导出等常规任务。 sh脚本对于我pipe理的所有项目都是相同的,所以必须有一个configuration文件来存储依赖项目的不同参数: # example conf, the sintaxys only needs to be able to have comments and be easy to edit. host=www.host.com administrator_email=guill@company.com password=xxx 我只需要find一个干净的方式,从sh脚本中读取(parsing)这个configuration文件,同时也可以从我的PHP脚本中读取相同的参数。 无需使用XML。 你知道这个好的解决scheme吗? 吉列尔莫

停止打印php错误信息到浏览器

我使用PHP 5.3,CentOS 6.2,httpd 2.2.15,NetBeans 7.0.1(通过ftp远程运行)。 我想停止向浏览器打印错误消息,这足以打印到httpd的error_log。 我认为做try / catch我会决定如何处理错误,但它仍然打印到error_log和浏览器。 function smic_gettext($phrase){ try{ $tr_text = $this->language_array[$phrase]; } catch(Exception $e){ error_log("Couldn't find any entry in the translation file for ".$phrase.". ".$e); return $phrase; } return $tr_text; } 我应该如何configuration才能阻止这种行为? 我曾尝试在php.ini中设置display_errors = Off和display_errors = 0。 没有区别(我没有重启httpd)。

在Ubuntu 16.04 Xenial和apache上安装php 5.3或5.4

我想在Ubuntu 16.04 Xenial和Apache上安装php 5.3或5.4。 一个教程指出我使用PPA,但他们没有帮助我需要什么。 我知道PHP 5.3和4已经过时,但我需要这个项目,这可能吗? 如果是的话,请教我如何在一步一步的程序与Apache2。

/ usr / local / bin /

我遵循https://getcomposer.org/doc/00-intro.md#globally上的文档来在arch linux上全局安装composer。 当我做composer self-update ,我得到这个消息: [ErrorException] rename(/home/hannes/.composer/cache/composer-temp.phar,/usr/local/bin/composer): Permission denied /usr/local/bin/的权限(我将它们更改为777,但没有帮助): -rwxrwxrwx 1 hannes users 1104202 30. Mai 18:07 composer 在我的主目录中,我这样做了: sudo chmod -R 777 .composer/ 在/etc/php/php.ini , open_basedir看起来如此: open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/usr/local/bin/ 我也尝试sudo composer self-update但它不工作,可能不是正确的方式。 (?)。 我还有什么可以尝试做这个工作?

如何以root身份运行php-fpm

我知道以root身份运行php-fpm的风险。 然而,在某些情况下,人们可能需要这样做,比如电器,访问操作系统资源,甚至是用于testing目的。 我尝试将php-fpm.d / www.conf的用户和组更改为root,当我重新启动php-fpm进程时,它引发一个错误: Starting php-fpm: [26-Jun-2014 00:39:07] ERROR: [pool www] please specify user and group other than root [26-Jun-2014 00:39:07] ERROR: FPM initialization failed [FAILED] 我该怎么办。 任何人帮助?

Apache访问Linux中的NTFS链接文件夹

在Debian jessie中使用Apache2 / PHP,当我想在Apache(/ var / www)的文档文件夹中创build一个新的子节点时,我只需创build一个链接到一个外部文件夹,在这里我的PHP文件存在,只需更改所有者和权限文件夹如下,它的作品完美。 ln -s /home/myname/mynewcode /var/www/test1 chown -R www-data:www-data /home/myname/mynewcode chmod -R 755 /home/myname/mynewcode 然后我可以访问http:// localhost / test1 但是,当我想要链接它的实际文件夹是在NTFS分区,因为chown和chmod不起作用,所以我通过添加以下代码来修改/ etc / fstab,因此我的NTFS分区将以所需的权限所有者。 UUID=XXDDXDDXDDDXDDDD /media/myname/lable ntfs user,exec,uid=www-data,gid=www-data 0 2 ln -s /media/myname/lable/mynewcode2 /var/www/test2 但是,我仍然从Apache2获得许可错误,我不知道该怎么做! 被禁止 您无权访问此服务器上的/ test2。 本地端口80上的Apache / 2.4.10(Debian)服务器

composer php安装/更新不起作用

我有一个Composer包pipe理器的问题。 系统是Ubuntu 12.04。 我不能使它工作。 我拉我的git项目,并尝试运行“composer php安装”,但似乎没有什么实际发生。 我只是得到一个信息 Installing dependencies (including require-dev) 那么实际上没有发生。 这是我使用-vvv参数运行的命令日志: 这里 有没有人有什么想法可能是错的? 我试图清除caching,但没有帮助。 我确信这个回购很好,因为我把它拉到我的Windows机器,它下载一切就好了。 'composer php诊断'也返回OK。 感谢您的任何提示。

libphp5.so丢失

我用下面的命令安装了php-5.2.17 ./configure make make install 安装进行得很好。 但我没有findlibphp5.so文件可以任何人build议我出了什么问题,以及如何解决这个错误。