Php Error-Log, Suse 10.3
Vielleicht OT: Ich hätte gerne die Log-Meldungen von php in einem separaten File. Ich habe in meiner php.ini log_errors = On und error_log = /var/log/apache2/phperrors.log phpinfo() sagt mir auch, dass diese Einstellungen verwendet werden. Die php-Meldungen landen aber nach wie vor in /etc/apache2/error_log und phperrors.log wird gar nicht erst angelegt. Anscheinend fehlt noch etwas, aber was?? Gruss -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Volker Poplawski wrote:
Vielleicht OT:
Ich hätte gerne die Log-Meldungen von php in einem separaten File. Ich habe in meiner php.ini log_errors = On und error_log = /var/log/apache2/phperrors.log
phpinfo() sagt mir auch, dass diese Einstellungen verwendet werden. Die php-Meldungen landen aber nach wie vor in /etc/apache2/error_log und phperrors.log wird gar nicht erst angelegt.
Anscheinend fehlt noch etwas, aber was??
Nein, ich gehe eher davon aus, dass das eine von Apache geloggt wird und die von dir angesprochene Anstellung nur das Loggen von der Kommandozeilen-Version ist. Du kannst probehalber mal eine php-Datei auf der Kommandozeile ausführen und dann nachsehen, ob diese Meldungen dann in die phperrors.log einfließen. Ich denke auch, dass es wenig Sinn macht, Das Log der aufgerufenen Apacheseiten je nach HTML/PHP/Perl usw. zu trennen. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch 02 April 2008 14:57:50 schrieb Sandy Drobic:
Volker Poplawski wrote:
Vielleicht OT:
Ich hätte gerne die Log-Meldungen von php in einem separaten File. Ich habe in meiner php.ini log_errors = On und error_log = /var/log/apache2/phperrors.log
phpinfo() sagt mir auch, dass diese Einstellungen verwendet werden. Die php-Meldungen landen aber nach wie vor in /etc/apache2/error_log und phperrors.log wird gar nicht erst angelegt.
Anscheinend fehlt noch etwas, aber was??
Nein, ich gehe eher davon aus, dass das eine von Apache geloggt wird und die von dir angesprochene Anstellung nur das Loggen von der Kommandozeilen-Version ist.
Du kannst probehalber mal eine php-Datei auf der Kommandozeile ausführen und dann nachsehen, ob diese Meldungen dann in die phperrors.log einfließen. Nein leider nicht. Die erzeugten Meldungen werden direkt auf der Konsole ausgegeben.
Ich bin aber auch der Meinung, es vor langer Zeit auf ner alten Suse so konfiguriert zu haben. Aber anscheinend hat sich irgendwas inzwischen geändert oder ich hab was vergessen.
Ich denke auch, dass es wenig Sinn macht, Das Log der aufgerufenen Apacheseiten je nach HTML/PHP/Perl usw. zu trennen.
Kommt drauf an. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Volker Poplawski schrieb:
Am Mittwoch 02 April 2008 14:57:50 schrieb Sandy Drobic:
Volker Poplawski wrote:
Vielleicht OT:
Ich hätte gerne die Log-Meldungen von php in einem separaten File. Ich habe in meiner php.ini log_errors = On und error_log = /var/log/apache2/phperrors.log
aber eigentlich nur für errors... nicht für den Rest
phpinfo() sagt mir auch, dass diese Einstellungen verwendet werden. Die php-Meldungen landen aber nach wie vor in /etc/apache2/error_log und phperrors.log wird gar nicht erst angelegt.
Anscheinend fehlt noch etwas, aber was?? Nein, ich gehe eher davon aus, dass das eine von Apache geloggt wird und die von dir angesprochene Anstellung nur das Loggen von der Kommandozeilen-Version ist.
Du kannst probehalber mal eine php-Datei auf der Kommandozeile ausführen und dann nachsehen, ob diese Meldungen dann in die phperrors.log einfließen. Nein leider nicht. Die erzeugten Meldungen werden direkt auf der Konsole ausgegeben.
na ja ..für Meldungen wäre das auch o.k. ... sollten ja eighentlich nur Errors geloggt werden... kann man den Loglevel einstellen (bei PHP) ? schau mal in die syslog-config /etc/???/syslog-ng.conf ? da kannst du auch noch mal Loggingziele einstellen (nach ändern den Syslogdaemonen neu starten!)
Ich bin aber auch der Meinung, es vor langer Zeit auf ner alten Suse so konfiguriert zu haben. Aber anscheinend hat sich irgendwas inzwischen geändert oder ich hab was vergessen.
Ich denke auch, dass es wenig Sinn macht, Das Log der aufgerufenen Apacheseiten je nach HTML/PHP/Perl usw. zu trennen. Kommt drauf an.
Standard(php)aufrufe ohne Fehler sollten beim Apachelog stehen... wozu die Php-Meckermeldungen ??? eigentlich reicht es meist, wenn das Syslog am Tagesende aufbereitet wird...logdigest, Logwatch oder so was...) aber na ja... Fred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Volker, Volker Poplawski wrote:
Ich hätte gerne die Log-Meldungen von php in einem separaten File. Ich habe in meiner php.ini log_errors = On und error_log = /var/log/apache2/phperrors.log
phpinfo() sagt mir auch, dass diese Einstellungen verwendet werden. Die php-Meldungen landen aber nach wie vor in /etc/apache2/error_log und phperrors.log wird gar nicht erst angelegt.
_Kann_ /var/log/apache2/phperrors.log denn überhaupt angelegt werden? Ich nehme an, für das Verzeichnis /var/log/apache2 hat nur root Schreibrechte, daher _kann_ der Apache-Prozess das PHP-Error-Logfile nicht anlegen. Versuch mal touch /var/log/apache2/phperrors.log chown wwwrun.www /var/log/apache2/phperrors.log Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch 02 April 2008 17:42:52 schrieb Joachim Marx:
Hallo Volker,
Volker Poplawski wrote:
Ich hätte gerne die Log-Meldungen von php in einem separaten File. Ich habe in meiner php.ini log_errors = On und error_log = /var/log/apache2/phperrors.log
phpinfo() sagt mir auch, dass diese Einstellungen verwendet werden. Die php-Meldungen landen aber nach wie vor in /etc/apache2/error_log und phperrors.log wird gar nicht erst angelegt.
_Kann_ /var/log/apache2/phperrors.log denn überhaupt angelegt werden? Ich nehme an, für das Verzeichnis /var/log/apache2 hat nur root Schreibrechte, daher _kann_ der Apache-Prozess das PHP-Error-Logfile nicht anlegen.
Versuch mal touch /var/log/apache2/phperrors.log chown wwwrun.www /var/log/apache2/phperrors.log
Joachim
Hallo Joachim, die Idee ist prinzipiell gut ;-) Ich hab das File mal angelegt und wwwrun.www übergeben, sogar Schreibrechte für others erteilt. Php schreibt aber trotzdem nichts rein. Die Errors und Log-Meldungen landen nach wie vor im error_log vom apache. (Ich würde auch eine Log-Meldung erwarten, wenn php oder apache2 ein File nicht anlegen/schreiben kann, welches in einer Konfigurationsdatei angegeben ist.) Php Errors bzw log-Meldungen (error_log()) werden reichlich produziert, ich finde sie wie gesagt in error_log. error_reporting = E_ALL Gruss ....Volker -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Volker Poplawski schrieb:
Am Mittwoch 02 April 2008 17:42:52 schrieb Joachim Marx:
Hallo Volker,
Volker Poplawski wrote:
Ich hätte gerne die Log-Meldungen von php in einem separaten File. Ich habe in meiner php.ini log_errors = On und error_log = /var/log/apache2/phperrors.log
phpinfo() sagt mir auch, dass diese Einstellungen verwendet werden. Die php-Meldungen landen aber nach wie vor in /etc/apache2/error_log und phperrors.log wird gar nicht erst angelegt.
_Kann_ /var/log/apache2/phperrors.log denn überhaupt angelegt werden? Ich nehme an, für das Verzeichnis /var/log/apache2 hat nur root Schreibrechte, daher _kann_ der Apache-Prozess das PHP-Error-Logfile nicht anlegen.
Versuch mal touch /var/log/apache2/phperrors.log chown wwwrun.www /var/log/apache2/phperrors.log
Joachim
Hallo Joachim,
die Idee ist prinzipiell gut ;-) Ich hab das File mal angelegt und wwwrun.www übergeben, sogar Schreibrechte für others erteilt. Php schreibt aber trotzdem nichts rein. Die Errors und Log-Meldungen landen nach wie vor im error_log vom apache. (Ich würde auch eine Log-Meldung erwarten, wenn php oder apache2 ein File nicht anlegen/schreiben kann, welches in einer Konfigurationsdatei angegeben ist.)
Php Errors bzw log-Meldungen (error_log()) werden reichlich produziert, ich finde sie wie gesagt in error_log. error_reporting = E_ALL
na ja ...phperrors kommen ja nur aus dem PHP-Modul...falsche Aufrufe passieren im Apache-Kontext! du solltest mal paar Beispiel bringen - sowohl als auch (also falsche PHP-Aufrufe -> die in Apachelog gehören und PHPerrors die in PHPerrorlog gehören...)
Gruss
....Volker
Fred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Volker Poplawski wrote:
Ich hab das File mal angelegt und wwwrun.www übergeben, sogar Schreibrechte für others erteilt. Php schreibt aber trotzdem nichts rein. Die Errors und Log-Meldungen landen nach wie vor im error_log vom apache. (Ich würde auch eine Log-Meldung erwarten, wenn php oder apache2 ein File nicht anlegen/schreiben kann, welches in einer Konfigurationsdatei angegeben ist.)
Nein, da bekommst Du keine Fehlermeldung. Hab's gerade bei mir mal getestet.
Php Errors bzw log-Meldungen (error_log()) werden reichlich produziert, ich finde sie wie gesagt in error_log. error_reporting = E_ALL
Ich nehme an, Dir ist klar, dass in die mit error_log=xxx in der PHP-Konfig. definierte Datei nur PHP-Errormeldungen geschrieben werden. Der Apache schreibt seine Errormeldungen weiterhin und unabhängig davon in die in der Apache-Konfig. mit ErrorLog angegebene Logdatei. Wenn PHP tatsächlich Errormeldungen erzeugt und die angegebene Log-Datei existiert und schreibbar ist, gäbe es für das Nicht-Benutzen der Logdatei noch folgende Erklärung: Obwohl in der php.ini error_log=/var/log/apache2/phperrors.log gesetzt ist, kann das innerhalb deiner PHP-Anwendung ja nochmal überschrieben werden, zB mit ini_set('log_errors',0) oder ini_set('error_log','/tmp/sonstein_error.log') Oder ist das bereits ausgeschlossen? Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Joachim Marx 02.04.2008 19:17:
Volker Poplawski wrote:
Php Errors bzw log-Meldungen (error_log()) werden reichlich produziert, ich finde sie wie gesagt in error_log. error_reporting = E_ALL
Ich nehme an, Dir ist klar, dass in die mit error_log=xxx in der PHP-Konfig. definierte Datei nur PHP-Errormeldungen geschrieben werden. Der Apache schreibt seine Errormeldungen weiterhin und unabhängig davon in die in der Apache-Konfig. mit ErrorLog angegebene Logdatei.
Ja, es geht mir um Php-Fehler: also Fehler die aus dem Php-Parser kommen. Syntaktische, semantische und explizit erzeugte Fehlermeldungen über die Funktion error_log() Diese landen eben per default im error_log des apache, zusammen mit den Fehlermeldungen die der apache erzeugt.
Wenn PHP tatsächlich Errormeldungen erzeugt und die angegebene Log-Datei existiert und schreibbar ist, gäbe es für das Nicht-Benutzen der Logdatei noch folgende Erklärung: Obwohl in der php.ini error_log=/var/log/apache2/phperrors.log gesetzt ist, kann das innerhalb deiner PHP-Anwendung ja nochmal überschrieben werden, zB mit ini_set('log_errors',0) oder ini_set('error_log','/tmp/sonstein_error.log') Oder ist das bereits ausgeschlossen? War auf jeden Fall wert das mal nachzuprüfen: Nein, der log-Pfad wird nicht verbogen. Aus einem kleinen Testphpskript heraus landen die php-Fehler (aller Arten) auch wieder im apache error_log. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Volker, Volker wrote:
Joachim Marx 02.04.2008 19:17:
Wenn PHP tatsächlich Errormeldungen erzeugt und die angegebene Log-Datei existiert und schreibbar ist, gäbe es für das Nicht-Benutzen der Logdatei noch folgende Erklärung: Obwohl in der php.ini error_log=/var/log/apache2/phperrors.log gesetzt ist, kann das innerhalb deiner PHP-Anwendung ja nochmal überschrieben werden, zB mit ini_set('log_errors',0) oder ini_set('error_log','/tmp/sonstein_error.log') Oder ist das bereits ausgeschlossen?
War auf jeden Fall wert das mal nachzuprüfen: Nein, der log-Pfad wird nicht verbogen. Aus einem kleinen Testphpskript heraus landen die php-Fehler (aller Arten) auch wieder im apache error_log.
Dann versuch doch mal, den Log-Pfad testweise in dem Testskript zu setzen: ini_set('log_errors',1); ini_set('error_log','/tmp/phperrors.log'); Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Volker, Volker wrote:
War auf jeden Fall wert das mal nachzuprüfen: Nein, der log-Pfad wird nicht verbogen. Aus einem kleinen Testphpskript heraus landen die php-Fehler (aller Arten) auch wieder im apache error_log.
Das Problem liegt sehr wahrscheinlich daran, dass Du in eine Datei loggen willst, die in einem Verzeichnis liegt, das ausserhalb der von Deiner open_basedir Direktive erlaubten Verzeichnisse liegt. Dann kann PHP nicht darauf zugreifen und die Meldungen landen im Apache-Log. Du kannst zB in der Apache-Konfig (bzw in der Konfiguration deines virtual hosts) eintragen php_admin_value open_basedir /var/log/apache2:/srv/www/htdocs:/sonstwas oder wenn Du die open_basedir Kontrolle ganz abschalten willst: php_admin_value open_basedir none Dann sollte es klappen. Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Volker Poplawski wrote:
Ich hätte gerne die Log-Meldungen von php in einem separaten File. Ich habe in meiner php.ini log_errors = On und error_log = /var/log/apache2/phperrors.log
phpinfo() sagt mir auch, dass diese Einstellungen verwendet werden. Die php-Meldungen landen aber nach wie vor in /etc/apache2/error_log und phperrors.log wird gar nicht erst angelegt.
Treten denn überhaupt Fehler auf, die geloggt werden müssten? Hast mal Du versucht, einen Fehler zu provozieren, der aufgrund des eingestellten Log-Levels geloggt werden müsste? Was ist Deine Einstellung für error_reporting in Deiner php.ini ? Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
Fred Ockert
-
Joachim Marx
-
Sandy Drobic
-
Volker
-
Volker Poplawski