I ran phpinfo()
and the error_log directive simply says error_log
. What file is that referring to? i.e. what would the full path to the error_log be?
When the value simply says error_log
(or error_log = error_log
in your php.ini
file), that means the errors will be written to a file called error_log
in the same directory that the error occurs.
So, if you have a file called index.php
in /home/user/public_html/ that throws an error, the error will be written to: /home/user/public_html/error_log.
If you have file called resize.php
in /home/user/public_html/admin/images/ that throws an error, then the errors will be written to: /home/user/public_html/admin/images/error_log
Source: Display and log errors for PHP
I guess you mean error_log
has the actual value error_log
?
I just did some testing. When I set error_log
to a value like php_errors.log
PHP still writes the error messages to the apache error log. It behaves as if the value was empty. When I set the value to a full path (e.g. /tmp/php_errors.log
) then it writes the errors to the specified file.
So I guess in your case it writes the errors to the apache error log file.
Of course you can set your own log file be adding
ini_set("error_log", "/tmp/php_errors.log");
to your PHP files where you need it (if it hasn't been disabled by an administrator).
Quote from the documentation:
error_log string
Name of the file where script errors should be logged. The file should be writable by the web server's user. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows NT it means the event log. The system logger is not supported on Windows 95. See also: syslog(). If this directive is not set, errors are sent to the SAPI error logger. For example, it is an error log in Apache or stderr in CLI.
So, when the value is not set (which is the default) it will be sent to the parent error logger, which is apache (if run via it) or stderr
if you run the script on the command line.
If you use the script via apache you will have to look at the apache error log, usually in /var/log/apache
or /var/log/httpd
, depending on your distribution. You can check the apache configuration file for the exact location.
/apache
in /var/log
. but there is an error_log
in /usr/local/apache/logs
but it doesn't seem to show any PHP errors. when i run my PHP page I'm getting a blank screen and i want to know the syntax error. display_errors
is turned off in php.ini
. –
Chirrup display_errors
in your php file itself. Just add ini_set("display_errors", 1);
at the beginning. –
Tera ini_set("display_errors", 1);
tells PHP to echo error messages to the screen via the output HTML. –
Iceblink /var/log/apache2
(extra "2") (observed on a fairly standard LAMP installation on Ubuntu MATE 20.04 (Focal Fossa))). –
Scanderbeg When the value simply says error_log
(or error_log = error_log
in your php.ini
file), that means the errors will be written to a file called error_log
in the same directory that the error occurs.
So, if you have a file called index.php
in /home/user/public_html/ that throws an error, the error will be written to: /home/user/public_html/error_log.
If you have file called resize.php
in /home/user/public_html/admin/images/ that throws an error, then the errors will be written to: /home/user/public_html/admin/images/error_log
Source: Display and log errors for PHP
On Windows 10, IIS 10.0.18362.1, I set this in file php\php.ini
:
error_log = "C:\tmp\php_errors.log"
or
error_log = C:\tmp\php_errors.log
or
error_log = \tmp\php_errors.log
phpinfo() shows:
error_log C:\tmp\php_errors.log or \tmp\php_errors.log
Sometimes directly, but always after iisreset
(recycling the application pool).
That is where the file is saved.
Without pad: error_log = php_errors.log
it will be written where the error occurs. It has already been mentioned.
Open your php.ini file.
Check the path against error_log.
© 2022 - 2024 — McMap. All rights reserved.