在这么多年来,我第一个PHP脚本,我想记录一个错误:PHP无法写入错误日志 - 权限被拒绝
error_log("my error message", 3, $error_log);
我得到的一般Apache的错误错误日志:
PHP Warning: error_log(/var/log/apache2/my_php_errors.log): failed to open stream: Permission denied in /var/www/html/blahblah/my_script.php on line 88
这是我已经检查并尝试:
- 创建
$error_log
用相同的所有权(root.adm
)和烫发issions(640
)作为Apache错误日志。 - 将所有者更改为
www-data
,这是PHP正在运行的用户。 log_errors
是On
。open_basedir
没有设置。- 使用PHP 5.5.x,所以安全模式不存在。
我错过了什么?
编辑:它能够写入一般的Apache错误日志。神秘的原因是它无法以相同的所有权和权限写入同一目录中的另一个文件。
编辑2:另一个开发人员告诉我,这对他的WAMP有效,所以它是我的LAMP堆栈或配置特有的东西。
我们需要更多关于'$ error_log'变量的信息。它是日志文件的目的地。对于默认日志文件保留为空。例如,它位于Web根目录之内还是之外。如果在外面,你可能想检查ini中允许的包含路径。 – Xorifelse
联系您的服务器管理员。 – frosty
尝试使用777来编写PHP需要写入的文件,并查看它是否可行 – Machavity