我的Linux服务器在Apache2上运行PHP 7作为CGI。在php.ini
中,我有
error_log = /var/log/apache2/php.log
现在,我有两个问题:
1) 所有PHP错误都将转到/var/log/apache2/error.log
而不是php.log
。我编辑了右边的php.ini
,因为ini_get('error_log')
在PHP中返回了php.log
的完整路径。
2) 当我尝试在PHP中打开这两个文件时,我会被拒绝权限。我已经将这两个文件chmod
'd保存到777,但PHP仍然无法访问它们。
服务器已多次重新启动,因此应用配置更改。我的Apache配置是这样的:
ErrorLog ${APACHE_LOG_DIR}/error.log
ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php7 php
Action application/x-httpd-php7 /local-bin/php-cgi7.0
<Directory "/usr/bin">
Require all granted
AllowOverride All
</Directory>
如何将PHP错误重定向到正确的文件,并使其对PHP可读?提前感谢!
您需要将日志目录和日志文件的owner
和group
更改为www-data
:
sudo chown -R www-data:www-data /path/to/log/directory
不要将目录权限更改为777
,因为这可能会导致安全问题,请改用775
。对于日志文件,请使用664
。
您可能还想将您的系统用户添加到组www-data
(如果还不是成员)(使用groups
命令检查现有组),之后需要重新启动系统才能使更改生效:
sudo adduser user www-data #change 'user' to your