How to log php error in a separate file?
up vote
6
down vote
favorite
I just did an upgrade of my server to Fedora 17 and merged some configuration files containing .rpmnew
into the existing ones. I have been successfully logging my php errors in a separate log file by keeping the following in php.ini
:
log_errors = On
error_log = /var/log/php-errors.log
I am not sure why the errors are being logged to /var/log/httpd/error_log
after the upgrade despite keeping the settings above.
Also,
$ ls -l /var/log/php-errors.log
-rwxrwxr--. 1 apache myself 232 Dec 13 16:49 /var/log/php-errors.log
shows that apache did own the php error log file.
What could be causing PHP errors to be logged into apache error log file?
php apache-http-server error-logging
migrated from stackoverflow.com Dec 17 '12 at 16:32
This question came from our site for professional and enthusiast programmers.
add a comment |
up vote
6
down vote
favorite
I just did an upgrade of my server to Fedora 17 and merged some configuration files containing .rpmnew
into the existing ones. I have been successfully logging my php errors in a separate log file by keeping the following in php.ini
:
log_errors = On
error_log = /var/log/php-errors.log
I am not sure why the errors are being logged to /var/log/httpd/error_log
after the upgrade despite keeping the settings above.
Also,
$ ls -l /var/log/php-errors.log
-rwxrwxr--. 1 apache myself 232 Dec 13 16:49 /var/log/php-errors.log
shows that apache did own the php error log file.
What could be causing PHP errors to be logged into apache error log file?
php apache-http-server error-logging
migrated from stackoverflow.com Dec 17 '12 at 16:32
This question came from our site for professional and enthusiast programmers.
@DaveRandom, fromphpinfo()
, it shows the loaded config file to be /etc/php.ini, which is correct.
– Question Overflow
Dec 17 '12 at 10:55
Have you tried setting the permissions on/var/log/php-errors.log
to 666, in case the user/groups are not set up how you think they are?
– DaveRandom
Dec 17 '12 at 13:49
@DaveRandom, thanks for the suggestion. I tried, and it still send the error to apache error log. Even disabling SELinux does not help a bit :(
– Question Overflow
Dec 17 '12 at 13:59
add a comment |
up vote
6
down vote
favorite
up vote
6
down vote
favorite
I just did an upgrade of my server to Fedora 17 and merged some configuration files containing .rpmnew
into the existing ones. I have been successfully logging my php errors in a separate log file by keeping the following in php.ini
:
log_errors = On
error_log = /var/log/php-errors.log
I am not sure why the errors are being logged to /var/log/httpd/error_log
after the upgrade despite keeping the settings above.
Also,
$ ls -l /var/log/php-errors.log
-rwxrwxr--. 1 apache myself 232 Dec 13 16:49 /var/log/php-errors.log
shows that apache did own the php error log file.
What could be causing PHP errors to be logged into apache error log file?
php apache-http-server error-logging
I just did an upgrade of my server to Fedora 17 and merged some configuration files containing .rpmnew
into the existing ones. I have been successfully logging my php errors in a separate log file by keeping the following in php.ini
:
log_errors = On
error_log = /var/log/php-errors.log
I am not sure why the errors are being logged to /var/log/httpd/error_log
after the upgrade despite keeping the settings above.
Also,
$ ls -l /var/log/php-errors.log
-rwxrwxr--. 1 apache myself 232 Dec 13 16:49 /var/log/php-errors.log
shows that apache did own the php error log file.
What could be causing PHP errors to be logged into apache error log file?
php apache-http-server error-logging
php apache-http-server error-logging
asked Dec 17 '12 at 10:50
Question Overflow
4412722
4412722
migrated from stackoverflow.com Dec 17 '12 at 16:32
This question came from our site for professional and enthusiast programmers.
migrated from stackoverflow.com Dec 17 '12 at 16:32
This question came from our site for professional and enthusiast programmers.
@DaveRandom, fromphpinfo()
, it shows the loaded config file to be /etc/php.ini, which is correct.
– Question Overflow
Dec 17 '12 at 10:55
Have you tried setting the permissions on/var/log/php-errors.log
to 666, in case the user/groups are not set up how you think they are?
– DaveRandom
Dec 17 '12 at 13:49
@DaveRandom, thanks for the suggestion. I tried, and it still send the error to apache error log. Even disabling SELinux does not help a bit :(
– Question Overflow
Dec 17 '12 at 13:59
add a comment |
@DaveRandom, fromphpinfo()
, it shows the loaded config file to be /etc/php.ini, which is correct.
– Question Overflow
Dec 17 '12 at 10:55
Have you tried setting the permissions on/var/log/php-errors.log
to 666, in case the user/groups are not set up how you think they are?
– DaveRandom
Dec 17 '12 at 13:49
@DaveRandom, thanks for the suggestion. I tried, and it still send the error to apache error log. Even disabling SELinux does not help a bit :(
– Question Overflow
Dec 17 '12 at 13:59
@DaveRandom, from
phpinfo()
, it shows the loaded config file to be /etc/php.ini, which is correct.– Question Overflow
Dec 17 '12 at 10:55
@DaveRandom, from
phpinfo()
, it shows the loaded config file to be /etc/php.ini, which is correct.– Question Overflow
Dec 17 '12 at 10:55
Have you tried setting the permissions on
/var/log/php-errors.log
to 666, in case the user/groups are not set up how you think they are?– DaveRandom
Dec 17 '12 at 13:49
Have you tried setting the permissions on
/var/log/php-errors.log
to 666, in case the user/groups are not set up how you think they are?– DaveRandom
Dec 17 '12 at 13:49
@DaveRandom, thanks for the suggestion. I tried, and it still send the error to apache error log. Even disabling SELinux does not help a bit :(
– Question Overflow
Dec 17 '12 at 13:59
@DaveRandom, thanks for the suggestion. I tried, and it still send the error to apache error log. Even disabling SELinux does not help a bit :(
– Question Overflow
Dec 17 '12 at 13:59
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
I think that here it's just the generic Apache errors that are seen in /var/log/httpd/error_log
.
I would insert a call to error_log('test');
into some PHP logic that is known to get interpreted when some specific page is refreshed, and if that's not seen in /var/log/php-errors.log
then I'd suspect that the versions upgraded to have some kind of a different config or permissions scheme that made the old config stop working.
I'd recommend going through the 'Error handling and logging' section in /etc/php/php.ini
, and checking for proper values for other directives. The directive error_reporting
should be set to E_ALL
or E_ALL & ~E_DEPRECATED & ~E_STRICT
. The directive log_errors
should be On
.
If just a filename (but no path) is specified for error_log
, then the file will appear in the same directory as the PHP script that calls error_log(...)
.
I'd also recommend specifying /tmp/php_error_log
for error_log
, refreshing the page, and then ls /tmp
to see if the file is there.
If the file is not there, login as root, and do a search for the file name across the whole file system so see where it ended up.
Generally, the proper config to get PHP error log working in a particular directory changes across different versions of Apache, PHP, and various distros.
I can say that on Arch Linux with Apache 2.4, PHP 5.5.11 and systemd version 212-1 the config above will make the PHP error log end up somewhere similar to /tmp/systemd-private-65d4c3e3cc534155bcf3ec708c2362f6-httpd.service-h8MSsD/tmp/php_error_log
.
Nope, those are PHP errors, not general errors. And I did give it a full path instead of a relative path. And it used to work two years ago.
– Question Overflow
Apr 5 '14 at 6:45
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
I think that here it's just the generic Apache errors that are seen in /var/log/httpd/error_log
.
I would insert a call to error_log('test');
into some PHP logic that is known to get interpreted when some specific page is refreshed, and if that's not seen in /var/log/php-errors.log
then I'd suspect that the versions upgraded to have some kind of a different config or permissions scheme that made the old config stop working.
I'd recommend going through the 'Error handling and logging' section in /etc/php/php.ini
, and checking for proper values for other directives. The directive error_reporting
should be set to E_ALL
or E_ALL & ~E_DEPRECATED & ~E_STRICT
. The directive log_errors
should be On
.
If just a filename (but no path) is specified for error_log
, then the file will appear in the same directory as the PHP script that calls error_log(...)
.
I'd also recommend specifying /tmp/php_error_log
for error_log
, refreshing the page, and then ls /tmp
to see if the file is there.
If the file is not there, login as root, and do a search for the file name across the whole file system so see where it ended up.
Generally, the proper config to get PHP error log working in a particular directory changes across different versions of Apache, PHP, and various distros.
I can say that on Arch Linux with Apache 2.4, PHP 5.5.11 and systemd version 212-1 the config above will make the PHP error log end up somewhere similar to /tmp/systemd-private-65d4c3e3cc534155bcf3ec708c2362f6-httpd.service-h8MSsD/tmp/php_error_log
.
Nope, those are PHP errors, not general errors. And I did give it a full path instead of a relative path. And it used to work two years ago.
– Question Overflow
Apr 5 '14 at 6:45
add a comment |
up vote
0
down vote
I think that here it's just the generic Apache errors that are seen in /var/log/httpd/error_log
.
I would insert a call to error_log('test');
into some PHP logic that is known to get interpreted when some specific page is refreshed, and if that's not seen in /var/log/php-errors.log
then I'd suspect that the versions upgraded to have some kind of a different config or permissions scheme that made the old config stop working.
I'd recommend going through the 'Error handling and logging' section in /etc/php/php.ini
, and checking for proper values for other directives. The directive error_reporting
should be set to E_ALL
or E_ALL & ~E_DEPRECATED & ~E_STRICT
. The directive log_errors
should be On
.
If just a filename (but no path) is specified for error_log
, then the file will appear in the same directory as the PHP script that calls error_log(...)
.
I'd also recommend specifying /tmp/php_error_log
for error_log
, refreshing the page, and then ls /tmp
to see if the file is there.
If the file is not there, login as root, and do a search for the file name across the whole file system so see where it ended up.
Generally, the proper config to get PHP error log working in a particular directory changes across different versions of Apache, PHP, and various distros.
I can say that on Arch Linux with Apache 2.4, PHP 5.5.11 and systemd version 212-1 the config above will make the PHP error log end up somewhere similar to /tmp/systemd-private-65d4c3e3cc534155bcf3ec708c2362f6-httpd.service-h8MSsD/tmp/php_error_log
.
Nope, those are PHP errors, not general errors. And I did give it a full path instead of a relative path. And it used to work two years ago.
– Question Overflow
Apr 5 '14 at 6:45
add a comment |
up vote
0
down vote
up vote
0
down vote
I think that here it's just the generic Apache errors that are seen in /var/log/httpd/error_log
.
I would insert a call to error_log('test');
into some PHP logic that is known to get interpreted when some specific page is refreshed, and if that's not seen in /var/log/php-errors.log
then I'd suspect that the versions upgraded to have some kind of a different config or permissions scheme that made the old config stop working.
I'd recommend going through the 'Error handling and logging' section in /etc/php/php.ini
, and checking for proper values for other directives. The directive error_reporting
should be set to E_ALL
or E_ALL & ~E_DEPRECATED & ~E_STRICT
. The directive log_errors
should be On
.
If just a filename (but no path) is specified for error_log
, then the file will appear in the same directory as the PHP script that calls error_log(...)
.
I'd also recommend specifying /tmp/php_error_log
for error_log
, refreshing the page, and then ls /tmp
to see if the file is there.
If the file is not there, login as root, and do a search for the file name across the whole file system so see where it ended up.
Generally, the proper config to get PHP error log working in a particular directory changes across different versions of Apache, PHP, and various distros.
I can say that on Arch Linux with Apache 2.4, PHP 5.5.11 and systemd version 212-1 the config above will make the PHP error log end up somewhere similar to /tmp/systemd-private-65d4c3e3cc534155bcf3ec708c2362f6-httpd.service-h8MSsD/tmp/php_error_log
.
I think that here it's just the generic Apache errors that are seen in /var/log/httpd/error_log
.
I would insert a call to error_log('test');
into some PHP logic that is known to get interpreted when some specific page is refreshed, and if that's not seen in /var/log/php-errors.log
then I'd suspect that the versions upgraded to have some kind of a different config or permissions scheme that made the old config stop working.
I'd recommend going through the 'Error handling and logging' section in /etc/php/php.ini
, and checking for proper values for other directives. The directive error_reporting
should be set to E_ALL
or E_ALL & ~E_DEPRECATED & ~E_STRICT
. The directive log_errors
should be On
.
If just a filename (but no path) is specified for error_log
, then the file will appear in the same directory as the PHP script that calls error_log(...)
.
I'd also recommend specifying /tmp/php_error_log
for error_log
, refreshing the page, and then ls /tmp
to see if the file is there.
If the file is not there, login as root, and do a search for the file name across the whole file system so see where it ended up.
Generally, the proper config to get PHP error log working in a particular directory changes across different versions of Apache, PHP, and various distros.
I can say that on Arch Linux with Apache 2.4, PHP 5.5.11 and systemd version 212-1 the config above will make the PHP error log end up somewhere similar to /tmp/systemd-private-65d4c3e3cc534155bcf3ec708c2362f6-httpd.service-h8MSsD/tmp/php_error_log
.
edited Apr 5 '14 at 1:36
Varaquilex
2,68032046
2,68032046
answered Apr 5 '14 at 0:24
maratbn
112
112
Nope, those are PHP errors, not general errors. And I did give it a full path instead of a relative path. And it used to work two years ago.
– Question Overflow
Apr 5 '14 at 6:45
add a comment |
Nope, those are PHP errors, not general errors. And I did give it a full path instead of a relative path. And it used to work two years ago.
– Question Overflow
Apr 5 '14 at 6:45
Nope, those are PHP errors, not general errors. And I did give it a full path instead of a relative path. And it used to work two years ago.
– Question Overflow
Apr 5 '14 at 6:45
Nope, those are PHP errors, not general errors. And I did give it a full path instead of a relative path. And it used to work two years ago.
– Question Overflow
Apr 5 '14 at 6:45
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f520522%2fhow-to-log-php-error-in-a-separate-file%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
@DaveRandom, from
phpinfo()
, it shows the loaded config file to be /etc/php.ini, which is correct.– Question Overflow
Dec 17 '12 at 10:55
Have you tried setting the permissions on
/var/log/php-errors.log
to 666, in case the user/groups are not set up how you think they are?– DaveRandom
Dec 17 '12 at 13:49
@DaveRandom, thanks for the suggestion. I tried, and it still send the error to apache error log. Even disabling SELinux does not help a bit :(
– Question Overflow
Dec 17 '12 at 13:59