PHP无法写入文件

时间:2014-10-07 17:07:52

标签: php apache file centos

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

$file = fopen($filename,"w") or die("Failure"); 

问题是,即使我在该目录中执行了chown apache:apache /var/www/html/*chmod 777 *,它总是失败,所以任何人都知道理解/解决这个问题的方法吗?

编辑:所以问题是目录本身确实没有chown

2 个答案:

答案 0 :(得分:4)

如果没有来自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")
?>

在您的情况下,我认为为了能够在给定目录中创建新文件,您可能希望向chmod或chown添加“-R”标志并在目录本身上调用它而不是孩子们 - 这样,如果PHP必须创建文件,它就有权这样做。

编辑:只是好奇为什么这有一个downvote - 什么是“非常草率,没有努力消耗的帖子,或者一个显然也许是危险的错误的答案。”?我告诉OP检查错误消息并以正确的递归方式设置其权限。

答案 1 :(得分:0)

将w模式更改为w + - 如果文件不存在,它将允许php创建文件。

$file = fopen($filename,"w+") or die("Failure");