PHP not displaying errors - Internal Server Error

2019-03-23 11:32发布

问题:

I've set up a fresh install of Ubuntu Server 12.04 LTS on Amazon AWS with *Apache2/MySQL/PHP5. When I run a PHP script and it encounters an error I don't see any error reporting from PHP, all I see is

HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfil the request.

I have checked my /etc/php5/apache2/php.ini file and as far as I can tell error reporting should be set up. The contents of the file (regarding errors) are:

;    display_errors
;      Default Value: On
;      Development Value: On
;      Production Value: Off

;    display_startup_errors
;      Default Value: Off
;      Development Value: On
;      Production Value: Off

;    error_reporting
;      Default Value: E_ALL & ~E_NOTICE
;      Development Value: E_ALL | E_STRICT
;      Production Value: E_ALL & ~E_DEPRECATED

Can anyone advise? If I try something like $obj = new ObjectDoesntExist; it doesn't tell me Fatal error: Class 'ObjectDoesntExist' it gives me a server 500 error.

Any advise?

* The modules I have installed are: mysql-server mysql-client apache2 php5 libapache2-mod-php5 phpmyadmin. Other than that it is a completely base install of Ubuntu Server 12.04 LTS

EDIT: If I use ini_set('display_errors', '1'); at the start of my script it displays errors as normal, but how do I enable this site wide?

回答1:

The php.ini snippet you pasted has a semicolon (the ; character) in each line. The semicolon is the start of a comment in php.ini, so everything in a line following a semicolon is not used. Try manually setting display_errors to on and error_reporting to E_ALL, or removing the appropriate semicolons to fix this.

Furthermore, check your apache's error log, php might be logging its errors there.



回答2:

please edit the php.ini file by using the sudo gedit /etc/php5/apache2/php.ini and on the Production Value,or you can also use the ini_set('display_errors', '1'); at the top of your php file



回答3:

I had the same problem but unrelated with php.ini if you have same error, before you begin snipping on your server, first check your code. Mistake can be a missing } ) or ; or something like that. this is just reference what to do first.