Alex Rivera | Logout

Apache does not log php errors

Asked 2011-11-21T09:33:03.087
24

PHP via CLI successfully logs errors to /var/log/php_errors.log.

But apache + php does not log errors.

[bla@notebook ~]$ apachectl -v
Server version: Apache/2.2.17 (Unix)
Server built:   May 19 2011 03:15:39

[bla@notebook ~]$ php -v
PHP 5.3.6 with Suhosin-Patch (cli) (built: Mar 23 2011 13:28:00) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

In php.ini I have:

display_errors = On
error_reporting = E_ALL | E_STRICT
log_errors = On
error_log = php_errors.log

In httpd.conf:

ErrorLog "/var/log/httpd/error_log"

Permissions:

[bla@notebook /]$ ls -la /var/log/httpd/
-rwxrwxr-x 1 root root 133351 21.11.2011 11:18 access_log*
-rwxrwxr-x 1 root http   1307 21.11.2011 11:18 error_log*

[bla@notebook /]$ ls -la /var/log/php_errors.log 
-rwxrwxr-x 1 root http 521 14.11.2011 17:31 /var/log/php_errors.log*

As you can see the Apache daemon has permissions to write into log files.

Still no errors from Apache or PHP in /var/log/php_errors.log and /var/log/httpd/error_log.

UPDATE 1.

Changed this line in php.ini:

error_log = php_errors.log 

to full path:

error_log = /var/log/php_errors.log 

Permissions were ok. But if someone is also having problems with it, you can debug setting permissions to logfile 0777 or changing file owner.

Edit
Report

1 Answer

6

I had the same problem.

Setting log_errors_max_len = 0 in php.ini worked for me.

PHP manual:

Set the maximum length of log_errors in bytes. In error_log information about the source is added. The default is 1024 and 0 allows to not apply any maximum length at all. This length is applied to logged errors, displayed errors and also to $php_errormsg, but not to explicitly called functions such as error_log().

answered 2013-07-18T13:54:15.703

Your Answer