Page 1 of 1

PHP Logging

Posted: 2007-05-25 12:40
by klerfrq
Hallo zusammen,

in PHP will ich das Logging in ein Logfile aktivieren. Der Apache läuft als www-data:www-data. Das von der Paketverwaltung installierte PHP wird als Modul geladen und läuft auf einem Debian Etch System. Das Log-File liegt nun unter /var/log/apache2/php.log mit dem Besitzer www-data:www-data und den Rechten 775.

Das ist aber denke ich nicht so, wie es im Lehrbuch geschrieben steht. Die Frage ist nur, als welcher Benutzer schreibt PHP bzw. Apache dort die Datein rein, um der Datei soviele Rechte wie möglich zu entziehen.

Die zweite Sache ist dann das Logfile Rotation - Standard mäßig wird das komplette /var/log/apache2/*.log routiert und dann neue Dateien angelegt, jedoch haben die dann die Besitzer root:adm mit den Rechten 640. Wäre es dann sinnvoll nach der Rotation jedesmal (automatisch versteht sich) die Rechte richtig zu setzen?

Viele Grüße
-klerfrq-

Re: PHP Logging

Posted: 2007-05-25 14:13
by Roger Wilco
klerfrq wrote:Das ist aber denke ich nicht so, wie es im Lehrbuch geschrieben steht.
Geht mit deinem Setup aber nicht anders.
klerfrq wrote:Die Frage ist nur, als welcher Benutzer schreibt PHP bzw. Apache dort die Datein rein, um der Datei soviele Rechte wie möglich zu entziehen.
www-data:www-data :roll:
klerfrq wrote:Wäre es dann sinnvoll nach der Rotation jedesmal (automatisch versteht sich) die Rechte richtig zu setzen?
Ja, sonst kann mod_php nicht mehr in die Datei schreiben. Das geht aber sehr einfach in der logrotate Konfiguration.

Re: PHP Logging

Posted: 2007-05-25 16:48
by klerfrq
Ok, Danke Roger Wilco, so habe ich es mitlerweile auch gelöst. Habe hinter allen Befehlen einfach folgende zwei Zeilen hinzugefügt:

Code: Select all

chown www-data:www-data /var/log/apache2/php*
chmod 775 /var/log/apache2/php*

Re: PHP Logging

Posted: 2007-05-25 16:54
by Roger Wilco
klerfrq wrote:Habe hinter allen Befehlen einfach folgende zwei Zeilen hinzugefügt
Das ist eigentlich unnötig. Logrotate unterstützt von Haus aus die Erstellung der Logdateien unter einem anderen Benutzer. (`man logrotate` -> "create mode owner group").

Re: PHP Logging

Posted: 2007-05-25 17:59
by juergen
klerfrq wrote:Hallo zusammen,

in PHP will ich das Logging in ein Logfile aktivieren. Der Apache läuft als www-data:www-data. Das von der Paketverwaltung installierte PHP wird als Modul geladen und läuft auf einem Debian Etch System. Das Log-File liegt nun unter /var/log/apache2/php.log mit dem Besitzer www-data:www-data und den Rechten 775.

Das ist aber denke ich nicht so, wie es im Lehrbuch geschrieben steht. Die Frage ist nur, als welcher Benutzer schreibt PHP bzw. Apache dort die Datein rein, um der Datei soviele Rechte wie möglich zu entziehen.
Du musst nicht dass error_log in der php.ini definieren. Du kannst auch das ErrorLog im Apache Server/VirtualHost definieren, dieses wird schon beim Apache-Start geöffnet und hat sichere Permissions. Alternativ kannst du auch mit syslog loggen.

Grüße,

Jürgen

Re: PHP Logging

Posted: 2007-05-30 14:24
by sllnd
In den normalen ErrorLogs vom Apache werden aber keine PHP Fehler angezeigt.
Ich denke - ich werde eine extra Instanz im Logrotate für die PHP Log anlegen müssen, dennoch mit den Rechten www-data, da sonst die Datei nicht beschrieben werden kann.

Re: PHP Logging

Posted: 2007-05-30 21:25
by juergen
SllnD wrote:In den normalen ErrorLogs vom Apache werden aber keine PHP Fehler angezeigt.
Aber sicher: Wenn du kein error_log definierst, landen die Fehlerausgaben auf stderr, und damit im Apache error log.