【发布时间】:2015-08-03 07:19:18
【问题描述】:
我想在单独的文件中记录 apache2 和 php 错误:
我在以下位置创建一个目录:/var/log/apache2/mydomain.com。这是存储日志文件的位置。
我编辑了我的/etc/apache2/sites-available/mydomain.com.conf:
<VirtualHost *:80>
ServerName mydomain.com
ServerAdmin webmaster@localhost
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public
php_flag display_errors Off
php_flag log_errors On
php_value log_errors_max_len 0
php_value error_reporting 6135
ErrorLog /var/log/apache2/mydomain.com/mydomain.com.error.log
CustomLog /var/log/apache2/mydomain.com/mydomain.com.access.log common
php_value error_log /var/log/apache2/mydomain.com/mydomain.com.php.error.log
<Directory "/var/www/mydomain.com/public">
Options FollowSymLinks
AllowOverride All
</Directory>
重要设置:
- php_flag display_errors 关闭
- php_flag log_errors 开启
- php_value log_errors_max_len 0
- php_value error_reporting 6135
- php_value error_log /var/log/apache2/mydomain.com/mydomain.com.php.error.log
但文件:mydomain.com.php.error.log 并未创建,而是将所有 PHP 错误添加到 mydomain.com.error.log 文件中。
apache2 能够写入目录:/var/log/mydomain.com(经过测试,如果我删除文件:mydomain.com.error.log。它将被重新创建)
我的.htaccess 文件中没有与日志相关的设置:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
当我编辑 /etc/apache2/sites-available/mydomain.conf 文件时,我运行:sudo service apache2 restart。
您是否发现任何错误或有什么原因导致它可能无法正常工作?
【问题讨论】:
标签: php logging apache2 virtualhost