• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Apache Größe des PHP-Error-Logs begrenzen

J

j-l-n

Guest
Ich habe bereits einige Beispiele gefunden, wie ich es verhindern kann, dass der Fehler-Log unendlich weiterwächst - diese basieren jedoch alle auf zusätzlichen Modulen etc.

Nun meine Frage: Gibt es dafür auch einen Ansatz mit PHP o.ä.?
Habe nämlich in diesem Fall keinen Zugriff auf Apache an sich (externer Webspace).
 
Wenn ich mal frech sein darf: Programmiere anständig!
Im Ernst: Ich habe auf mein error.log sogar Überwachungen. Wenn da was drin steht bekomme ich eine E-Mail und behebe dann den Fehler sofort.
Warum ist das bei dir so fett?
 
Warum ist das bei dir so fett?
Ist er nicht. Generell treten bei mir auch eigentlich keine Fehler auf - mich interessiert nur die Möglichkeit.
Wenn ich ehrlich bin, ist es in der Praxis eigentlich egal, denn da wird der Log niemals innerhalb kurzer Zeit auch nur auf ein MB anwachsen - wie gesagt, mich interessiert es in der Theorie...

PS: du darfst frech sein ;)
 
Ich würde das schon deshalb nicht begrenzen, damit mir kein Fehler durch die Lappen geht.
Und wenn es mal ein paar MB hat, was solls?
 
Ich würde das schon deshalb nicht begrenzen, damit mir kein Fehler durch die Lappen geht.
Und wenn es mal ein paar MB hat, was solls?

Gut, von daher ist es (zumindest in der Praxis) egal. Hätte mich dennoch interessiert. Aber egal, wie du sagtest: solange keine Fehler auftreten, ist die Größe ja wurscht :D
 
Es gibt doch den Dienst "LogRotate". Dieser komprimiert nach x Tagen das LogFile und erstellt ein neues. So sind diese immer recht übersichtlich und man kann alte Log-File recht einfach löschen.

Das bringt dir natürlich nur was, wenn du Zugriff auf den Server und die Log-Files hast...
 
Danke für eueren Tipp! Allerdings geht das leider nur wenn man Zugriff auf Apache hat, richtig? Das würde dann nämlich bei einigen meiner Projekte nicht funktionieren...
 
Jo, du brauchst dafür auf jeden Fall root Zugriff auf den Server.
 
Julian, setz dir doch einen Apache zuhause lokal auf und experimentiere dort ein bisschen rum.
Online auf den Produktivservern hast du doch hoffentlich nicht soviele Fehler im error.log drin stehen?! :)
 
Online auf den Produktivservern hast du doch hoffentlich nicht soviele Fehler im error.log drin stehen?! :)

Wie gesagt, im Log steht normalerweise nix drin - es geht mir nur um die theoretische Möglichkeit ;)
Weiß nicht so genau: ich hab mir mal die portable Version von XAMPP geholt. Kann man damit das auch ausprobieren?
 
Sollte eigentlich funktionieren. Du musst halt nur sichergehen, dass rotatelogs installiert ist und läuft.
 
bevor man über die limitierung des errorlogs nachdenkt, sollte man so programmieren, dass keine fehler auftreten. ich weiß, das ist nicht immer möglich, manchmal verwendet man dinge, die fehler verursachen weil sie teil von etwas sind was teile behandelt (habe ich bei meinem router festgestellt).

um scripte zu testen empfiehlt es sich sowieso diese auf xampp (oder ähnlichem) zu erstellen und zu testen weil: zugriff auf vollständigen errorlog (apace, php, mysql) und kann sie entsprechend abarbeiten...

bspw. sieht ein teil meines routers so aus:

PHP:
$url = trim(strtolower(mysql_real_escape_string($_SERVER['REQUEST_URI'])), '/');
list($folder, $query) = explode('/', $url);
list($bad) = explode('.', $url);

list($bad) erzeugt IMMER eine fehlermeldung da sie nie bedient wird solange niemand eine php-datei aufruft. der fehler lässt sich nicht vermeiden...

einfache abhilfe (wird erst "aktiviert" wenn der router komplett fertig ist)

PHP:
         ini_set("log_errors", "off");
         ini_set("display_errors", "off");
         ini_set("track_errors", "off");
         ini_set("display_startip_errors", "off");
 
Zuletzt bearbeitet:
Natürlich kann man immer so programmieren, dass keinerlei Fehler kommen - und das sollte man auch immer tun.

Bei dir könntest du z.B. das explode zuerst machen, prüfen wieviele Elemente da sind und die Zuordnung dann entsprechend machen. Hat auch den Vorteil, dass du dann gleich einen Defaultwert für $query anlegen kannst.

PS: warum jagst du deine URI durch mysql_real_escape_string()?
 
@kkapsner

das ist eine gute idee!!!! ich bin gar nicht auf die idee gekommen das explode zuerst auszuführen :D

das mysql_real_escape ist so drinne... ich habe gelernt, alles durch den escaper zu jagen was ich aus der uri-zeile nehme ^^
 
Zurück
Oben