Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get the PHP error log from PHP on remote hosting

Is there a PHP function or some other way of obtaining the PHP error log as a string?

I need this because I cannot access the error log of a site I am running on someone else's server. - He offered to email me the error log, but that isn't exactly convenient.

Is there some way I could output the error log to a PHP page?


I realize that viewing the entire server's error log is not really going to happen for me. However, I know you can do something like this to email a manual error_log call to yourself:

error_log('A really bad error', 3, '[email protected]');

Is it possible to configure a page to email errors to you instead of displaying them?

like image 573
Alex Coplan Avatar asked Dec 29 '11 11:12

Alex Coplan


People also ask

How do I view PHP error logs?

Look for the entry Configuration File (php. Find the Error handling and logging section of the php. ini file. Make sure that both display_errors = On, display_startup_errors = On and log_errors = On are present and uncommented. Check the value of error_log - this tells you the location of the file errors are logged to.

Where are PHP error logs Apache?

It could be listed as either /var/log/httpd/error_log or /var/log/apache2/error_log , but it might also be listed as simply logs/error_log . In this case it is a relative path, which means it will be under /etc/httpd/logs/error_log .

How do I enable PHP error logging?

Enable Error Logging in php. If you want to enable PHP error logging in individual files, add this code at the top of the PHP file. ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); Now, you must enable only one statement to parse the log errors in the php.

How do I find the server error log?

The name and the location of the log is set by the ErrorLog command and the default apache access log file locations are: RHEL / Red Hat / CentOS / Fedora Linux Apache access log file location – /var/log/httpd/error_log. Debian / Ubuntu Linux Apache access log file location – /var/log/apache2/error. log.


1 Answers

On a badly secured server, yes. But on most servers there are two users: apache and [ you ]. You don't have access to the server logs, since they are owned by the apache user (or whichever server you're using).

However, you could probably try it:

echo file_get_contents('/var/log/httpd/error_log');

Note: that's the default location on a RedHat-based apache server. It may be different

Update To reflect the updated question
No, you cannot view the error log with error_log - it is a one-way process that gets handled by the webserver. It only writes the log, but you cannot read it.

You can probably display the errors with this:

ini_set('display_errors', 'On');
error_reporting(E_ALL);

You could even use set_error_handler to handle all warnings and notices (for example, to mail them). But that's pretty much all you can do.

like image 104
Tom van der Woerdt Avatar answered Oct 31 '22 11:10

Tom van der Woerdt