PHP Warnungen werden nicht protokolliert?

2669
Joseph

Ich versuche, ein Skript aufzuspüren und habe festgestellt, dass mein Problem von httpd stammt. Um diesen Beitrag zusammenzufassen, versucht etwas, eine Verbindung zu einer Website herzustellen, und [ordnungsgemäß] wird von der Server-Firewall blockiert. Beim Versuch, eine Verbindung zu einer Website herzustellen, führt dies zu einer Zeitüberschreitung und es wird eine PHP-Warnung auf der Seite generiert:

Warning: file_get_contents(http://foobar.com) [function.file-get-contents.html]: failed to open stream: Connection timed out in /home/foo/bar.php on line 3 

Dieser Server läuft mit cPanel, also habe ich mit dem cPanel-Konfigurationseditor error_log auf /var/log/php-scripts.log und error_reporting auf E_ALL gesetzt. Die Warnung aus meinem Testfall wird jedoch nicht in /var/log/php-scripts.log angezeigt (obwohl das Protokoll von einigen PHP-Startup-Warnungen aufgefüllt wird).

Kann mir jemand die richtige Richtung weisen, warum die Warnung in meinem Testskript nicht protokolliert wird? Ich denke, wenn ich die Timeout-Warnung in meinem Testskript zur Protokollierung erhalten kann, wird auch die Timeout-Warnung im böswilligen Skript protokolliert, und ich kann herausfinden, wo sich das Skript verbirgt.

Vielen Dank!

0
Haben Sie das Webserverprotokoll überprüft? Es ist (normalerweise?) Nicht an derselben Stelle wie PHP-Fehler protokolliert. Nifle vor 14 Jahren 0
Kein Glück im httpd-Fehlerprotokoll. Joseph vor 14 Jahren 0

1 Antwort auf die Frage

1
BloodPhilia

Stellen Sie sicher, dass in Ihrer php.iniDatei die Fehlerprotokollierung aktiviert ist. Die folgende Zeile sollte aktiviert sein:

error_log = /var/log/php-scripts.log 

Sie können es auch einstellen

error_log = syslog 

um alle Fehler im syslog zu protokollieren. Starten Sie nach dem Hinzufügen der Zeile zu Ihrer php.iniDatei httpd neu

$ sudo /etc/init.d/httpd restart 

cPanel macht dies möglicherweise nicht richtig.