我在Linux Mint 13 Maya上用php5运行apache2。 我已经定义了一个虚拟主机和这两个条目:
ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
这会在var/log/apache2产生错误和访问日志。
我想让我的PHP错误进入PHP错误日志。 在我的/etc/php5/apache2/php.ini我已经设置:
display_errors = On log_errors = On error_log = /var/log/php-errors.log log_errors_max_len = 0 error_reporting = E_ALL | E_STRICT
生成了日志文件/var/log/php-errors.log ,但是它所logging的是两个警告,一些模块已经加载。 我试图在虚拟主机defintion中注释掉日志指令,但是这并没有改变,所有的错误仍然logging在Apache日志中。
我在这里错过了什么?
有可能权限不足以写入该文件; 你也必须确保目录也是可以访问的。
例如它是如何在我的系统上(这是标准的Debian wheezy安装):
$ ls -ld /var/log/apache2/ drwxr-x--- 2 root adm 4096 Sep 4 15:59 /var/log/apache2/ $ ls -ld /var/log/apache2/php-error.log -rw-r--r-- 1 www-data www-data 0 Jul 23 11:07 /var/log/apache2/php-error.log
这不起作用,因为包含php-error.log的目录不可访问。 幸运的是,mod_php(或apache2?)回退到虚拟主机错误日志中。
就我而言,通过应用chmod o+rx /var/log/apache2/很容易解决,但是您的安全考虑可能会有所不同。 修复之后:
$ ls -ld /var/log/apache2/ drwxr-xr-x 2 root adm 4096 Sep 4 15:59 /var/log/apache2/
随着这种变化,它的工作。
PS:首先,我遇到了同样的问题,一天之内解决不了。 谷歌search没有任何结果。 想到在serverfault上写一个问题。 在准备冠军头衔的时候,我得到了一些build议,而你的第二个打击。 我意识到我会写一个重复的问题,所以我想我写你的评论。 但是后来我想写更多的东西,想着写一个答案不解决问题,但也会导致我的观点,也许别人可以帮助。 在准备答案的同时,我发现了解决scheme。 这绝对是太棒了…呃,这里有什么。 serverfault / stackexchange帮助我隐式地在别人的帮助下find解决scheme。 我想(除了自己解决之外)不能变得更好。