Wil*_*ark 18 php apache logging
PHP error_log方法不会将错误写入自定义错误日志文件.它只会写入/var/log/apache2/php_error.log
以下是我的日志记录设置php.ini:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
display_errors = Off
log_errors = On
log_errors_max_len = 0 ; also tried with 9999999
error_log = /var/log/apache2/php_errors.log
Run Code Online (Sandbox Code Playgroud)
PHP将其错误写入常规Apache错误日志(/var/log/apache2/error.log)而不是我上面指定的错误.
我已经尝试过的事情:
/var/log/apache2/php_errors.log是777权限,该文件存在.(仅供参考:我在Ubuntu 11.04上使用Apache/2.2.17和PHP/5.3.5-1ubuntu7.2)
我究竟做错了什么?
new*_*ngt 14
我想回答这个问题,因为它在谷歌上取得了很高的成绩,尽管这是一个老问题.
我通过为日志目录中的所有用户添加写权限来解决这个问题.
在我的情况下,用户'http'需要能够写入/ var/log/httpd /所以我跑了
# chmod a+w /var/log/httpd
Run Code Online (Sandbox Code Playgroud)
如果该文件已存在,则可能有助于首先删除它并允许Apache创建它.
我的php.ini文件也包含了整个路径.
error_log = /var/log/httpd/php_errors.log
Run Code Online (Sandbox Code Playgroud)
您可以尝试像这样指定文件名:
我在 Ubuntu 上使用 Apache 2.2.22。
使用这个 PHP 命令:
error_log("eric", 3, "/home/el/error.log");
Run Code Online (Sandbox Code Playgroud)
第一个参数是要发送到错误日志的消息。第二个参数的3意思是“期望文件名目标。第三个参数是目标。
创建文件 /home/el/error.log 并将其所有权设置为:
el@apollo:~$ ll error.log
-rwxrwxr-x 1 www-data www-data 7 Dec 13 14:30 error.log
Run Code Online (Sandbox Code Playgroud)
当 PHP 解释 error_log 方法时,它将消息附加到您的文件中。
来源: http: //www.php.net/manual/en/function.error-log.php
蒋艾伦*_*蒋艾伦 -1
删除 php_errors.log 并重新启动 apache2,服务器本身将创建一个具有适当权限和所有者的新 php_errors.log 文件。
rm -f /var/log/apache2/php_errors.log
service apache2 restart
ll /var/log/apache2/php_errors.log
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33107 次 |
| 最近记录: |