Häufige Fehlermeldungen beim Ausführen von PHP-Scripten
In diesem Artikel finden Sie einige Erklärungen und Lösungsvorschläge zu Fehlermeldungen, die häufig nach der Installation bzw. bei der Benutzung von PHP-Scripten auftreten können.
Um Fehler nachvollziehen zu können, ist es empfehlenswert, diesen Parameter zu aktivieren. Die Aktivierung können Sie mit einem entsprechenden Eintrag in Ihrer php.ini vornehmen. Fügen Sie Ihrer php.ini-Datei daher bitte folgende Einträge hinzu:
error_reporting = E_ALL
display_errors = On
Nach der Evaluierung des Fehlers ist es ratsam, diese Einstellung wieder zu deaktivieren.
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Hintergrund: Dieses Problem tritt auf, wenn das Script versucht, sich auf den MySQL-Server über den lokalen Rechner zu verbinden. Das geschieht, wenn in der Konfiguration des Scriptes keine MySQL-Daten eingetragen wurden.
Lösung: Bitte tragen Sie in der Konfiguration des Scriptes korrekte MySQL-Daten ein. Ihre MySQL-Zugangsdaten erhalten Sie im passwortgeschützten STRATO Kunden-Login unter den Menüpunkten Einstellungen und Datenbankverwaltung.
Failed opening required 'Dateiname.php' (include_path='.:/includes')
in mnt/am/0/htdocs/est.php on line
Hintergrund: Diese Fehlermeldung wird angezeigt, wenn eine vom Script benötigte Datei nicht gefunden wird. Weiterhin kann diese Meldung auch bei Scripten auftreten, die PEAR benötigen, sofern eine falsche PHP-Version gemappt wurde.
Lösungsmöglichkeiten:
a) Sofern Sie ein Script nutzen, das PEAR benötigt: Achten sie darauf, dass sie die Version PHP 4.3 oder höher verwenden. Unter Umständen müssen sie dafür eine .htaccess -Datei anlegen bzw. diese, wenn sie schon existiert, um einen Eintrag erweitern.
b) Nach der in der Fehlermeldung erwähnten Datei suchen, möglicherweise befindet sie sich nur in einem anderen Verzeichnis (in diesem Fall die Datei in den entsprechenden Ordner kopieren)
c) Zugriffsrechte der Datei überprüfen.
So stellen Sie die Zugriffsberechtigungen von Dateien ein (CHMOD)
d) Anleitung des Scriptes genau lesen und überprüfen, ob eventuell ein zusätzliches Paket installiert werden muss, damit das Script laufen kann.
e) Als letzte Möglichkeit eine entsprechende Datei aus dem Installationspaket auf Ihrer Festplatte entpacken und erneut auf Ihren Webspace in das jeweilige Verzeichnis laden.
Warning: fopen(../data/colors.inc): failed to open stream: Permission denied
in /mnt/02/007/htdocs/save_.inc on line
Hintergrund: Dieser Fehler erscheint, wenn die Zugriffsrechte für die entsprechende Datei falsch oder nicht gesetzt sind.
Lösung: Zugriffsrechte müssen je nach Inhalt der Fehlermeldung gesetzt werden (bei "failed to open..." Lesezugriff, bei "failed to write..." Schreibzugriff einrichten.
So stellen Sie die Zugriffsberechtigungen von Dateien ein (CHMOD)
Parse error: parse error in /ordner/ordner/datei.php on line 65
Hintergrund: Diese Fehlermeldung weist auf einen "Syntax"-Fehler hin.
Lösung: Gehen Sie in der angegebenen Datei zur entsprechenden Zeile und prüfen Sie, ob jeder Befehl mit einem ";" geschlossen ist, oder ob ein Anführungszeichen fehlt.
500 Internal Server Error
Hintergrund: Dieser Fehler erscheint, wenn die Zugriffsrechte falsch bzw. nicht gesetzt sind oder wenn sich eine "php.ini"-Datei im Hauptverzeichnis befindet.
Lösungsmöglichkeiten:
a) Überprüfen Sie, ob sich Hauptverzeichnis eine php.ini Datei befindet und ändern Sie probeweise den Namen der Datei. Überprüfen Sie, ob die Fehlermeldung anschließend immer noch erscheint.
b) Die Zugriffsrechte auf Ordner und/oder Dateien sind nicht in Ordnung und müssen geändert werden.
So stellen Sie die Zugriffsberechtigungen von Dateien ein (CHMOD)
"Warning: Unable to access..." (beim Aufruf von Joomla / Mambo)
Hintergrund: Die Ursache für diese Meldung liegt oft an einem falschen absoluten Pfad, der in der Regel in einer PHP Konfigurationsdatei hinterlegt ist. Ein falsch eingetragener Pfad in den PHP-Scripten kann zu einem der folgenden Fehler führen:
"Warning: Unable to access /mnt/be1/02/037/0004/htdocs/include/html_helper.php
in /mnt/cr2/04/640/00011/htdocs/include/path.php on line 80"
"Fatal error: Failed opening required
'/mnt/be1/02/037/0004/htdocs/include/html_helper.php' (include_path='')
in /mnt/cr2/04/640/00011/htdocs/include/path.php on line 80"
Der absolute Pfad ist für die UNIX-Webhosting-Pakete immer gemäß der FAQ: Wie lauten die Pfade in Ihrem System? anzugeben:
Beispiel: /home/strato/www/ersten zwei_buchstaben/www.wunschname.de/htdocs/
In Joomla/Mambo muss die Datei 'configuration.php' einfach mit korrekten absoluten Pfad angepasst werden:
"Warning: main() …: include(….) denied …" (über PHP)
Hintergrund: Die auf der STRATO-Plattform installierten PHP-Versionen verfügen über einen integrierten Schutzmechanismus, um das Einschleusen von Fremdscripten in Ihren Webspace über den "php-include" Mechanismus zu erschweren.
Aus diesem Grund weigert sich der PHP-Interpreter "include()-Anweisungen" auf URLs von externen Domains auszuführen, wenn die angegebene URL auch als GET- oder POST- Parameter an das Script übergeben wurde. Es erscheint dann eine Fehlermeldung wie:
Warning: main() [url_wrapper]: include(http://www.[Domainname]/[scriptname.php]) denied ...
Lösung: Bei includes von externen URLs in PHP-Scripten sollte die Domain immer so angegeben werden, dass sie nicht per Parameter überschrieben werden kann (beispielsweise indem die URL fest in das Script einkodiert wird).