Current time: 11-24-2024, 10:03 AM Hello There, Guest! (LoginRegister)


Post Reply 
PHP kein Fehler Log, keine Fehler Anzeige
Author Message
smallfreak Offline
Junior Member
*

Posts: 11
Joined: Nov 2007
Reputation: 0
Post: #1
Sad PHP kein Fehler Log, keine Fehler Anzeige
Ich habe ja meinen Server neu installiert, und diesmal (fast) alles nach Handbuch und Voreinstellungen gemacht, inklusive PHP als fcgi mit eigenen INI Dateien.

Für eine Anwendung muss ich mit "exec()" etwas aufrufen. Das klappt nun, seit ich die entsprechende Einschränkung in der Domain spezifischen php.ini herausgenommen habe.

Ich kann auch ein "phpinfo()" machen und sehe dort genau die Einstellungen wieder, die ich auch in der jeweiligen INI stehen habe.

Mein Problem ist aber, dass PHP Fehler jedweder Art in keinem Logfile aufscheinen. Ich kann da einstellen, was ich will (syslog, File, sonstwas). Ich habe schon verschiedentliche Files und Verzeichnisse eingestellt, auch den domain spezifischen "phptmp" Ordner, damit ich auch sicher sein kann, dass der Prozess da auch schreiben darf. Das Logfile wird angelegt, ist aber immer leer.

Ich kann auch "display_startup_errors" und "display_errors" einstellen was ich will (phpinfo zeigt mir, dass das auch so gelesen wird), und trotzdem bekomme ich im Fehlerfall nur eine weiße Seite.

Irgendwo ist da noch der Wurm drin.

System: ISPCP 1.0.2, Debian Lenny, PHP 5.2.6-1+lenny4 (+ Suhosin Patch)
(This post was last modified: 12-13-2009 01:38 AM by smallfreak.)
12-13-2009 01:25 AM
Find all posts by this user Quote this message in a reply
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #2
RE: PHP kein Fehler Log, keine Fehler Anzeige
(12-13-2009 01:25 AM)smallfreak Wrote:  Ich habe ja meinen Server neu installiert, und diesmal (fast) alles nach Handbuch und Voreinstellungen gemacht, inklusive PHP als fcgi mit eigenen INI Dateien.

Für eine Anwendung muss ich mit "exec()" etwas aufrufen. Das klappt nun, seit ich die entsprechende Einschränkung in der Domain spezifischen php.ini herausgenommen habe.

Ich kann auch ein "phpinfo()" machen und sehe dort genau die Einstellungen wieder, die ich auch in der jeweiligen INI stehen habe.

Mein Problem ist aber, dass PHP Fehler jedweder Art in keinem Logfile aufscheinen. Ich kann da einstellen, was ich will (syslog, File, sonstwas). Ich habe schon verschiedentliche Files und Verzeichnisse eingestellt, auch den domain spezifischen "phptmp" Ordner, damit ich auch sicher sein kann, dass der Prozess da auch schreiben darf. Das Logfile wird angelegt, ist aber immer leer.

Ich kann auch "display_startup_errors" und "display_errors" einstellen was ich will (phpinfo zeigt mir, dass das auch so gelesen wird), und trotzdem bekomme ich im Fehlerfall nur eine weiße Seite.

Irgendwo ist da noch der Wurm drin.

System: ISPCP 1.0.2, Debian Lenny, PHP 5.2.6-1+lenny4 (+ Suhosin Patch)

Was steht in der php.ini bei error_log, error_reporting, display_errors, track_errors ?
12-13-2009 03:44 AM
Find all posts by this user Quote this message in a reply
smallfreak Offline
Junior Member
*

Posts: 11
Joined: Nov 2007
Reputation: 0
Post: #3
RE: PHP kein Fehler Log, keine Fehler Anzeige
(12-13-2009 03:44 AM)FISA4 Wrote:  Was steht in der php.ini bei error_log, error_reporting, display_errors, track_errors ?

Auszug aus der php.ini (/var/www/fcgi/meinedomain.at/php5/php.ini)

error_reporting = "E_ALL & ~E_NOTICE"
display_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
;report_zend_debug = 0
track_errors = Off


Auszug aus der phpinfo():

Configuration File (php.ini) Path /etc/php5/cgi
Loaded Configuration File /var/www/fcgi/meinedomain.at/php5/php.ini
Scan this dir for additional .ini files /etc/php5/cgi/conf.d
...
disable_functions no value no value
display_errors On On
display_startup_errors On On
error_append_string no value no value
error_log /var/www/virtual/meinedomain.at/phptmp/php_error.log /var/www/virtual/meinedomain.at/phptmp/php_error.log
error_reporting E_ALL & ~E_NOTICE E_ALL & ~E_NOTICE

(meinedomain.at, da steht natürlich ein Domain Name für den Klienten drin)

Wenn ich an der php.ini etwas ändere, sehe ich das nach dem Apache-Reload nachher im phpinfo() auch. Wenn ich im Script über ini_set('display_errors', true); oder false etwas ändere, dann sehe ich das auch im phpinfo unter local Settings. Wenn ein Fehler auftritt, dann passiert entweder garnichts, oder das Script bricht an der Stelle kommentarlos ab, oder es startet gleich gar nicht (wenn wieder mal ein ; wo fehlt).

Das Logfile habe ich auch schon unter /var/log/php_error.log versucht - nix. Auch ein Versuche mit "error_log = syslog" - Fehlanzeige.

Wenn ich per PHP in dem Ordner /var/www/virtual/meinedomain.at/phptmp/ eine Datei anlege, dann geht das und der Eigentümer ist der korrekte VU User (vu2002). Ein exec() Aufruf produziert dort noch mehr Zeug, wieder korrekt mit dem User. Ein Rechteproblem sollte es also an DER Stelle nicht sein.

Als Ergebnis bekomme ich am Browser immer eine "korrekte" 200 Statusmeldung, nur dass im Zweifelsfall eben kein HTML ankommt, nur ein Header.

Nach meinem Dafürhalten sollte es funktionieren. Sad
12-13-2009 04:21 AM
Find all posts by this user Quote this message in a reply
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #4
RE: PHP kein Fehler Log, keine Fehler Anzeige
Wenn ich mich nicht verlesen habe, muss die Datei

php_error.log

als User und Gruppe "www-data" haben.
Ist das so bei Dir ?
12-13-2009 06:47 AM
Find all posts by this user Quote this message in a reply
smallfreak Offline
Junior Member
*

Posts: 11
Joined: Nov 2007
Reputation: 0
Post: #5
RE: PHP kein Fehler Log, keine Fehler Anzeige
(12-13-2009 06:47 AM)FISA4 Wrote:  Wenn ich mich nicht verlesen habe, muss die Datei

php_error.log

als User und Gruppe "www-data" haben.

Die gibt's ja noch gar nicht, ich habe damit gerechnet, dass die der Prozess bei Bedarf anlegt. Da dieser wiederum als FCGI unter dem Benutzer vu2002 läuft und nicht unter "www-data", habe ich natürlich zuerst an den gedacht. Wenn aber das Logfile NICHT vom PHP-CGI Prozess, sondern vom aufrufenden Apache angelegt wird, dann hat der möglicherweise dort keinen Zugriff.

Obwohl, 777 im "phptmp" Verzeichnis sollten eigentlich reichen.

Ich habe versuchshalber das Script mal als root von der Kommandozeile aufgerufen, natürlich mit der zugehörigen php.ini. Das ist auch nicht besser. Eine Ausgabe der Fehler am Terminal bekomme ich nur mit dem Parameter -n, also OHNE irgend eine ".ini" Datei. Es MUSS also irgend eine Einstellung da drin sein. Ich komme nur nicht drauf.

Wahrscheinlich ist es so offensichtlich, dass es weh tut, wenn man es gefunden hat. Sad
12-13-2009 07:28 AM
Find all posts by this user Quote this message in a reply
FISA4 Offline
Member
***

Posts: 668
Joined: Feb 2008
Reputation: 15
Post: #6
RE: PHP kein Fehler Log, keine Fehler Anzeige
(12-13-2009 07:28 AM)smallfreak Wrote:  
(12-13-2009 06:47 AM)FISA4 Wrote:  Wenn ich mich nicht verlesen habe, muss die Datei

php_error.log

als User und Gruppe "www-data" haben.

Die gibt's ja noch gar nicht, ich habe damit gerechnet, dass die der Prozess bei Bedarf anlegt. Da dieser wiederum als FCGI unter dem Benutzer vu2002 läuft und nicht unter "www-data", habe ich natürlich zuerst an den gedacht. Wenn aber das Logfile NICHT vom PHP-CGI Prozess, sondern vom aufrufenden Apache angelegt wird, dann hat der möglicherweise dort keinen Zugriff.

Obwohl, 777 im "phptmp" Verzeichnis sollten eigentlich reichen.

Ich habe versuchshalber das Script mal als root von der Kommandozeile aufgerufen, natürlich mit der zugehörigen php.ini. Das ist auch nicht besser. Eine Ausgabe der Fehler am Terminal bekomme ich nur mit dem Parameter -n, also OHNE irgend eine ".ini" Datei. Es MUSS also irgend eine Einstellung da drin sein. Ich komme nur nicht drauf.

Wahrscheinlich ist es so offensichtlich, dass es weh tut, wenn man es gefunden hat. Sad

Ist ja immer so. Da wo man als letztes guckt, da ist der "Fehler".
12-13-2009 09:31 AM
Find all posts by this user Quote this message in a reply
smallfreak Offline
Junior Member
*

Posts: 11
Joined: Nov 2007
Reputation: 0
Post: #7
RE: PHP kein Fehler Log, keine Fehler Anzeige
(12-13-2009 07:28 AM)smallfreak Wrote:  Wahrscheinlich ist es so offensichtlich, dass es weh tut, wenn man es gefunden hat. Sad

Ok, ich habs gefunden. Es ist der Eintrag
Code:
error_reporting = "E_ALL & ~E_NOTICE"

Der Parameter error_reporting verlangt laut PHP-doc einen numerischen Parameter. Man kann ihn aber mit PHP-Konstanten setzen. Dabei steht E_ALL für 30719 und E_NOTICE für 8. Man kann also schreiben:
Code:
error_reporting = 30711
und DAS funktioniert auch. Man kann das aber auch weglassen, denn das ist sowieso der Default Wert.

Aaaber: "E_ALL & ~E_NOTICE" ist eine Zeichenkette und die hat den Wert 0, also "keinerlei Fehler ausgeben".

Da das vom ISPCP so vorgeschlagen wird, denke ich mal, das ist ein Bug.

Richtig wäre wohl
Code:
error_reporting = E_ALL & ~E_NOTICE
12-15-2009 05:16 AM
Find all posts by this user Quote this message in a reply
ZooL Offline
Moderator
*****
Moderators

Posts: 3,429
Joined: Jan 2007
Reputation: 79
Post: #8
RE: PHP kein Fehler Log, keine Fehler Anzeige
joa mit " " ist nicht korrekt in der php config

mfg
12-15-2009 02:06 PM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)