If somebody comes looking it should look like this:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/domains/example.com/html
ErrorLog /var/www/domains/example.com/apache.error.log
CustomLog /var/www/domains/example.com/apache.access.log common
php_flag log_errors on
php_flag display_errors on
php_value error_reporting 2147483647
php_value error_log /var/www/domains/example.com/php.error.log
</VirtualHost>
This is for development only since display_error
is turned on. You will notice that the Apache error log is separate from the PHP error log. The good stuff is in php.error.log
.
Take a look here for the error_reporting
key http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting
To set the Apache (not the PHP) log, the easiest way to do this would be to do:
<VirtualHost IP:Port>
# Stuff,
# More Stuff,
ErrorLog /path/where/you/want/the/error.log
</VirtualHost>
If there is no leading "/" it is assumed to be relative.
Apache Error Log Page
I usually just specify this in an .htaccess
file or the vhost.conf
on the domain I'm working on. Add this to one of these files:
php_admin_value error_log "/var/www/vhosts/example.com/error_log"
The default behaviour for error_log() is to output to the Apache error log. If this isn't happening check your php.ini settings for the error_log directive. Leave it unset to use the Apache log file for the current vhost.
Don't set error_log
to where your syslog
stuff goes, eg /var/log/apache2
, because they errors will get intercepted by ErrorLog
. Instead, create a subdir
in your project folder for logs and do php_value
error_log "/path/to/project/logs"
. This goes for both .htaccess
files and vhosts. Also make sure you put php_flag
log_errors
on
Try adding the php_value error_log '/path/to/php_error_log
to your VirtualHost configuration.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With