So konfigurieren Sie logrotate mit PHP-Protokollen

8

Ich führe php5 FPM mit APC als Opcode- und Anwendungscache aus. Wie üblich schreibe ich PHP-Fehler in eine Datei.

Da das ziemlich groß wird, habe ich versucht, logrotate zu konfigurieren. Es funktioniert, aber nach der Rotation protokolliert PHP weiterhin die vorhandene Protokolldatei, auch wenn es umbenannt wird. Dies führt dazu, dass scripts.log eine 0B-Datei ist und scripts.log.1 weiter wächst.

Ich denke (habe nicht versucht), dass php5-fpm neu laden in Postrotate könnte dies beheben, aber das würde meinen APC-Cache jedes Mal löschen.

Weiß jemand, wie man das richtig funktioniert?

    
Steven De Groote 03.01.2013, 19:30
quelle

2 Antworten

6
  

Ich habe festgestellt, dass die Option "copytruncate" für logrotate sicherstellt, dass sich der Inode nicht ändert. Im Grunde hat [sic!] Gesucht.

Das ist wahrscheinlich das, wonach Sie suchen. Entnommen aus: Wie funktioniert logrotate? - Linuxquestions.org .

Wie in meinem Kommentar geschrieben, müssen Sie verhindern, dass PHP in dieselbe (umbenannte) Datei schreibt. Beim Kopieren einer Datei wird normalerweise eine neue Datei erstellt, und das Abschneiden ist ebenfalls Teil des Namens dieser Option. Daher würde ich annehmen, dass die Option copytruncate eine einfache Lösung darstellt (von der Hilfeseite ):

%Vor%

Siehe auch:

hakre 03.01.2013, 19:37
quelle
5

Eine andere Lösung, die ich auf einem meiner Server gefunden habe, ist, php anzuweisen, die Logs wieder zu öffnen. Ich denke, Nginx hat auch dieses Feature, was mich zu der Annahme verleitet, dass es ziemlich normal ist. Hier ist meine Konfiguration:

%Vor%     
greg0ire 26.03.2014 15:51
quelle

Tags und Links