2012-07-31 12 views
18

Ich habe eine Neuinstallation von Ubuntu Server 12.04 LTS auf Amazon AWS mit * Apache2/MySQL/PHP5 eingerichtet. Wenn ich einen PHP-Skript ausführen und es auf einen Fehler stößt ich sehe keinen Fehler von PHP berichten, alles, was ich sehe, istPHP zeigt keine Fehler an - Interner Serverfehler (500)

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

Ich habe meine /etc/php5/apache2/php.ini Datei überprüft und soweit ich die Fehlerberichterstattung sagen kann, sollte sein Konfiguration. Der Inhalt der Datei (in Bezug auf Fehler) sind:

; 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 

Kann jemand beraten? Wenn ich etwas wie $obj = new ObjectDoesntExist; versuche, sagt es mir nicht Fatal error: Class 'ObjectDoesntExist' es gibt mir einen Server 500 Fehler.

Irgendwelche Ratschläge?

* Die Module, die ich installiert habe, sind: mysql-server mysql-client apache2 php5 libapache2-mod-php5 phpmyadmin. Anders als das ist es eine komplette Basisinstallation von Ubuntu Server 12.04 LTS

EDIT: Wenn ich ini_set('display_errors', '1'); am Anfang von meinem Skript verwende, zeigt es Fehler als normal an, aber wie aktiviere ich diese Seite?

+0

Siehst du irgendwas in error_log, wenn dein Apache-Server? Es klingt wie mode_php funktioniert einfach nicht. Würde eine PHP-Datei, die nur ' 'gib Ausgabe? – favoretti

+0

haben Sie Apache Fehlerprotokolle '/ var/log/apache2/error.log' überprüft? – Kalpesh

+2

Alle Zeilen in deiner php.ini sind auskommentiert. Finden Sie, wo 'display_errors' deklariert ist, und aktivieren Sie es. –

Antwort

14

Der eingefügte php.ini-Code enthält in jeder Zeile ein Semikolon (das Zeichen;). Das Semikolon ist der Beginn eines Kommentars in der php.ini, also wird nicht alles in einer Zeile nach einem Semikolon verwendet. Versuchen Sie manuell, display_errors auf on und error_reporting auf E_ALL zu setzen, oder entfernen Sie die entsprechenden Semikola, um dies zu beheben.

Überprüfen Sie außerdem das Fehlerprotokoll Ihres Apaches, php protokolliert möglicherweise seine Fehler dort.

+0

Ich habe die '' '' 'aus dem obigen Ausschnitt auskommentiert und' display_errors = On' und 'display_startup_errors = On' gesetzt, wo ich sie in der Datei' php.ini' gefunden habe, aber immer noch das gleiche Problem? – iainjames88

+1

Haben Sie Apache neu gestartet, nachdem Sie die Änderungen in Ihrer php.ini vorgenommen haben? Irgendwelche Fehler in Apaches Fehlerprotokoll? – Wouter

+2

Neustart Apache während Sie auf Ihre Antwort warten und das ist es gelöst. Fühle dich ein bisschen albern, dass du das ursprünglich nicht gemacht hast! Danke für die Hilfe :) – iainjames88

0

Ich hatte das gleiche Problem aber nicht verwandt mit php.ini Wenn Sie den gleichen Fehler haben, bevor Sie anfangen, auf Ihrem Server zu schnippen, überprüfen Sie zuerst Ihren Code. Fehler kann ein Fehler sein}) oder; oder etwas ähnliches. Dies ist nur eine Referenz was zuerst zu tun ist.

2

Bitte bearbeiten Sie die php.ini Datei mit dem sudo gedit /etc/php5/apache2/php.ini und dem Production Value, oder Sie können auch das ini_set ('display_errors', '1'); an der Spitze Ihrer PHP-Datei

Verwandte Themen