我在 CentOS 上有一个 Apache HTTP 服务器,我安装了 PHP(yum install php
),然后测试了一个将文本写入文件的简单脚本,所以我这样做了
$file = fopen($filename,"w") or die("Failure");
问题是它总是失败,即使我在其中执行了 chown apache:apache/var/www/html/*
或 chmod 777 *
之后也是如此目录,所以有人知道理解/解决这个问题的方法吗?
编辑:所以问题是目录本身没有 chown
最佳答案
如果没有来自 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”标志并在目录本身上调用它而不是 child ——那样的话,如果 PHP 必须创建文件,它就有权限这样做。
编辑:只是好奇为什么这有一个反对票——什么是“极其草率、不费吹灰之力的帖子,或者一个明显不正确且可能危险的答案。”?我告诉 OP 检查错误消息并以适当的递归方式设置它们的权限。
关于PHP不能写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26241442/