I am testing a website online.
Right now, the errors are not being displayed (but I know they exist).
I have access to only the .htaccess file.
How do I make all errors to display using my .htaccess file?
I added these lines to my .htaccess file:
php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on And the pages now display:
3Internal server error
5 Answers
.htaccess:
php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log 9php_flag display_errors on To turn the actual display of errors on.
To set the types of errors you are displaying, you will need to use:
php_value error_reporting <integer> Combined with the integer values from this page:
Note if you use -1 for your integer, it will show all errors, and be future proof when they add in new types of errors.
1I feel like adding more details to the existing answer:
# PHP error handling for development servers php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on php_flag log_errors on php_flag ignore_repeated_errors off php_flag ignore_repeated_source off php_flag report_memleaks on php_flag track_errors on php_value docref_root 0 php_value docref_ext 0 php_value error_log /full/path/to/file/php_errors.log php_value error_reporting -1 php_value log_errors_max_len 0 Give 777 or 755 permission to the log file and then add the code
<Files php_errors.log> Order allow,deny Deny from all Satisfy All </Files> at the end of .htaccess. This will protect your log file.
These options are suited for a development server. For a production server you should not display any error to the end user. So change the display flags to off.
For more information, follow this link: Advanced PHP Error Handling via htaccess
1If you want to see only fatal runtime errors:
php_value display_errors on php_value error_reporting 4 This works for me (reference):
# PHP error handling for production servers # Disable display of startup errors php_flag display_startup_errors off # Disable display of all other errors php_flag display_errors off # Disable HTML markup of errors php_flag html_errors off # Enable logging of errors php_flag log_errors on # Disable ignoring of repeat errors php_flag ignore_repeated_errors off # Disable ignoring of unique source errors php_flag ignore_repeated_source off # Enable logging of PHP memory leaks php_flag report_memleaks on # Preserve most recent error via php_errormsg php_flag track_errors on # Disable formatting of error reference links php_value docref_root 0 # Disable formatting of error reference links php_value docref_ext 0 # Specify path to PHP error log php_value error_log /home/path/public_html/domain/PHP_errors.log # Specify recording of all PHP errors # [see footnote 3] # php_value error_reporting 999999999 php_value error_reporting -1 # Disable max error string length php_value log_errors_max_len 0 # Protect error log by preventing public access <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files>