PHP无法写入文件

Tra*_*xys 3 php apache centos file

我在CentOS上安装了Apache HTTP服务器,安装了PHP(yum install php),然后测试了一个简单的脚本,该脚本将文本写入文件中,因此我

$file = fopen($filename,"w") or die("Failure"); 
Run Code Online (Sandbox Code Playgroud)

问题是,即使我在该目录中执行了“ a” chown apache:apache /var/www/html/*或“ a” ,它始终都是失败的chmod 777 *,所以有人知道一种了解/解决此问题的方法吗?

编辑:所以这里的问题是目录本身没有chown

Lae*_*eom 5

没有PHP的实际错误消息,很难说是什么。

看看这个页面:

http://www.w3schools.com/php/php_error.asp

长话短说,创建并设置自定义错误处理程序,如下所示:

<?php
//error handler function
function customError($errno, $errstr) {
  echo "<b>Error:</b> [$errno] $errstr";
}

//set error handler
set_error_handler("customError");

//trigger error
$file = fopen($filename,"w")
?>
Run Code Online (Sandbox Code Playgroud)

对于您的情况,我认为为了使其能够在给定目录中创建新文件,您可能想在chmod或chown中添加“ -R”标志,并在目录本身而非子目录上调用它- -这样,如果PHP必须创建文件,则它具有这样做的权限。

编辑:很好奇为什么这会产生负面影响-什么是“草率的,毫不费力的帖子,或者答案显然是错误的,甚至是危险的”。我告诉OP检查错误消息并以适当的递归方式设置其权限。