Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Dateigröße für Logfile beschränkt auf 4096KB?

Hallo,

ich habe ein Problem auf einer Strato Domain (... bitte jetzt keine Kommentare, wieso ausgerechnet Strato ...). Villeicht kann mir jemand von Euch helfen. Der Strato-Support sieht sich leider ausser Stande :-((

Also, ich habe ein PHP Script welches evtl. Fehler in eine Datei loggt. Das Ganze läuft unter PHP5 und funktioniert wunderbar. Allerdings bekomme ich ab einer Dateigröße von 4096KB den Fehler "500 Internal Sever Error". Auf meiner Dev-Umgebung xamplite/WinXP treten keine Probleme auf...

Das Script loggt (als error_handler) die Fehler mittels error_log(). Erst dachte ich es läge an der Funktion und habe das Ganze auf file_put_contents(..., FILE_APPEND) umgeschrieben. Das Ergebnis ist aber das Gleiche. Quotas oder sowas können es nicht sein, denn ich kann Dateien größer als 4096KB per FTP hochladen. Permissions kann ich auch ausschliessen, denn die Datei wird ja angelegt und es funktioniert bis zu der besagten Größe.

Ich bin ratlos! Im Forum und auch sonst im Netz habe ich nichts zu dem Thema gefunden. Noch bin ich guter Hoffnung, dass ich nur eine Einstellung übersehen habe... Sicher einer dieser blöden Fehler, für die ich mich nachher schämen muss *g*

Wäre für Hilfe auf ewig dankbar :-))

Viele Grüße,
Markus

Hier gehts zum Orginal Eintrag "Dateigröße für Logfile beschränkt auf 4096KB?" im Forum

Antworten

versuch mal den code hier auszuführen

Code:                   In Zwischenablage kopieren (nur IE)
1">

wenn das ohne fehler geht, dann ist bei dem server ein memory-limit gesetzt

http://de3.php.net/manual/en/ini.core.php#ini.memory-limit

wenn ein fehler kommt, dann gibt es kein memory-limit und ich bin grad auch was ratlos :D

es gibt zwar noch die einstellung log_errors_max_len, aber die dürfte nicht gelten, wenn du direkt in die datei schreibst


2.

Die Fehlermeldung 500 ist leider zu allgemein. Im error_log des Webservers steht dann näheres zum Fehler. Da ist aber Strato gefragt Dir das zur Verfügung zu stellen oder selbst hinein zu schauen.


3.

Danke für die raschen Antworten!

@progressive:

memory_get_usage() liefert 51016. Auf meiner Dev-Umgebeung kommt ein Fehler, also ist wohl xamplite nicht mit der Option "--enable-memory-limit" compiliert. Das ist schon mal eine heisse Spur, obwohl:
a) memory_limit (bei Strato) auf 20M gesetzt ist. Das sollte eigenlich ausreichen
b) ich lade das logfile ja nicht ins memory, sondern hänge nur etwas an. Laut manual entspricht file_put_contents() den funktionen fopen, fwrite, fclose... evtl. stelle ich das script mal auf die "native" IO funktionen um, aber ich denke nicht dass das was bringen wird :-(

log_errors_max_len hatte ich auch in verdacht, aber das ist m.W. die Länge von 1 Fehler und nicht die Größe des error-logs. Und Du hast recht, dann müsste aber zumindest file_put_contents() funktionieren.

@Oliver:

Das wäre sicherlich anzuraten, aber nach der Antwort von Strato:

Zitat:
Wir versuchen zwar stets, bei grundlegenden Fragen trotzdem eine anfängliche Hilfestellung zu gewähren, können aber die Vermittlung weitergehender Kenntnisse in der Webseitenerstellung nicht leisten.
traue ich mich ehrlich gesagt erst gar nicht nach dem server logfile zu fragen... Finde es echt eine Frechheit von denen es so hinzustellen, als ob es hier um basics geht. Ich will in eine Datei protokollieren und der server macht bei 4MB dicht! Aber ich gönne mir den Spaß und frage mal nach dem logfile... Gedanklich habe ich mich schon mit dem Thema Providerwechsel beschäftigt :-)

Also nochmal Danke!

*ratlos und für weitere Anregungen offen bin* :-))


4.

Ich nochmal :-)

Also ich habe mir ein kleines test-script geschrieben, welches mittels fopen(), fwrite(), fclose() eine Datei erzeugt. Das Ganze bleibt bei 4096 KB stehen und is_writeable() liefert beim nächsten Aufruf TRUE...

Für Hilfe wäre ich äusserst dankbar, denn z.Zt. fällt mir echt nichts mehr ein :-(((

Hier der code:
Code:                   In Zwischenablage kopieren (nur IE)
2">




5.

Zitat:
Also ich habe mir ein kleines test-script geschrieben, welches mittels fopen(), fwrite(), fclose() eine Datei erzeugt. Das Ganze bleibt bei 4096 KB stehen und is_writeable() liefert beim nächsten Aufruf TRUE...
ich meinte FALSE, d.h. nach 4096 KB kann die Datei nicht mehr beschrieben werden ...


6.

ich denke, es wird an strato liegen...anhand irgendeiner einstellung werden die die files auf 4096 kb begrenzen

vielleicht werden dateien überwacht, die *.log heissen, und dann begrenzt um "echte" log-files in der größe zu begrenzen

hast du nur webspace oder einen root-server oder vroot-server?

und was für eine angabe ist "20 mb" wirklich? maximaler arbeitsspeicher? speicher für ein skript? denn auch schreib-vorgänge belegen arbeitsspeicher, der die größe der eigentlichen datei übersteigen kann...


7.

Also ich fasse mal zusammen:

Problem:
- Das Anhängen von Text an eine Datei mit error_log(), file_put_contents(), oder frwite() bricht nach 4096 KB ab.

Umgebung:
- Strato webspace "Premium XE", PHP 5, Verzeichnis: htdocs, oder Verzeichnis darunter (kein Unterschied)
max_execution_time 0
max_input_time 60
memory_limit 20M
safe_mode On
safe_mode_exec_dir no value
safe_mode_extra_uid 0
safe_mode_gid Off
safe_mode_include_dir /opt/RZphp5/includes

Beobachtungen:
- memory_get_usage() vor und nach dem Schreiben sind fast identisch => kein Memorylimit Problem
- FTP upload von Dateien größer 4096 KB möglich => keine quotas
- wiederholtes "cat xxx.txt >> yyy.txt" erlaubt das Erstellen von einer Datei > 4096 KB auf Kommandoebene (mit telnet session) => keine UNIX Einschränkung, d.h. wohl eher Apache set-up
- Dateiendung spielt keine Rolle => keine Beschränkung auf *.log
- ist die Datei bereits 4096 KB liefert is_writeable() FALSE => ??
- ist die Datei bereits 4096 KB liefert fwrite(...) FALSE => ??

Ursache:
- ???

Starto untersucht den Fall, ist aber wohl selbst ziehmlich ratlos!

Hat denn keiner von Euch eine Idee?


8.

ein versuch noch :D zu deinem testskript

Code:                   In Zwischenablage kopieren (nur IE)
3">

das wird vor jedem schreibvorgang den belegten speicher anzeigen. vielleicht kann man dort erkennen, ob doch die grenze erreicht wird...

ist zumindest mal ein versuch wert...


9.

leider negativ :-((

der belegte Speicher bleit konstant bei ~80000... Das kann es also nicht sein. Trotzdem Danke!

mir ist aber aufgefallen, dass das Script manchmal "abschmiert", d.h. ich habe mal das "exit" durch "break" ersetzt und ca. jedes 2te mal bricht das script einfach ab. Es kommt also gar nicht mehr bis zum fclose(). error_reporting ist auf E_ALL und es wird kein Fehler angezeigt. Mehrkwürdig...


10.

Hat niemand eine Idee?

Strato ist nach nunmehr > 1 Monat immer noch nicht in der Lage mir auch nur irgendwie zu helfen. Angeblich ist der 2nd-Level Support dran und man wüsste nicht wann ich mit einer Lösung rechnen kann :-((

Mir wäre auch sehr geholfen, wenn jemand von Euch bestätigen könnte dass ihr das Problem bei Strato "Premium-Paket XE 2005" definitiv nicht habt, d.h. Logfiles (oder andere Files) größer 4096 KB erzeugen könnt.

Vielen Dank!


11.

Wenn Du mit Shell-Utilities die Datei erweitern kannst, dann mach doch folgenden Workaround:

Code:                   In Zwischenablage kopieren (nur IE)
4">

Ist zwar gruselig - aber wenns nicht anders geht...


12.

Ich nochmal...

@Rana: Danke erst mal für den Workaround, aber es ist halt nur ein Workaround :-)

Habe heute von Strato-Support folgende "Antwort" erhalten:

Zitat:
Entschuldigen Sie unsere verspätete Antwort. Wie Sie der PHP-Info entnehmen können, ist die \"log_errors_max_len\" auf 1024 byte gesetzt. Möglicherweise kommt es deshalb zu Fehlermeldungen.

Für weitere Fragen stehen wir Ihnen jederzeit gern telefonisch sowie per Email zur Verfügung.
Nach 6 Wochen hat es wohl jemand von denen mal geschafft ein Blick ins PHP-Manual zu werfen. Nur dass mein Problem nur am Rande mit error_logging zu tun hat, haben die einfach ignoriert... Auch ein ganz normales file_put_contents() scheitert ja nach 4096 KB. Mal ganz davon abgesehen, dass log_errors_max_len rein gar nichts mit der Größe der Datei zu tun hat. Ich bin am verzweifeln und werde wohl kündigen... Mittlerweile bin ich vom Strato-Service sowas von enttäuscht, dass ich mir sage lieber jetzt wechseln, als auf einem Problem im produktiven Betrieb sitzen zu bleiben.

Wenn jemand einen Tip für einen guten Provider mit vernünftigem Support hat, dann lasst es mich bitte wissen...

Danke,
Markus


13.

Zitat:
Wenn jemand einen Tip für einen guten Provider mit vernünftigem Support hat, dann lasst es mich bitte wissen...
Das Zauberwort heißt "Rootserver" - da bist Du selbst der Support. Und Chef im Ring.

Da ganze Server in der Regel zu teuer sind, empfehle ich Dir einen "Virtual Server" bei www.vserver.de - mit 9,90 € pro Monat nicht ganz billig, aber dafür viel Leistung (5GB Plattenplatz, 200GB Traffic) und vor allem: Dein eigenes Reich. Ändern, neu installieren, konfigurieren - alles wie es Dir gefällt.


14.

Also, ich habe heute bei Strato gekündigt!

So etwas habe ich wirklich noch nicht erlebt.

Erst bekomme ich gar kein Feedback von denen und als ich bei der Vetragsabteilung nach >1 Monat das Thema Kündigung ansprach, meldete sich plötzlich bei mir jemand von der Technik. Ich habe denen (vor 4 Wochen) zwei kleine Test-Scripts zur Verfügung gestellt die den Fehler reproduzieren und seit dem ist wieder Funkstille. Auf eine Antwort auf meine Anfrage, ob sie mir die ausgefallenen Monate (~3) wenigstens gutschreiben, warte ich heute noch... Auf eine Anfrage, bis wann ich mit einer Antwort rechnen kann, reagiert auch niemand. Sind wohl alle untergetaucht!

Ich bin wirklich sowas von "pissed off"...

Werde den Tip von Rana beherzigen und einen VServer ordern. Ich benötige Cron-Jobs und die bietet meines Wissens nur Strato in einem vernünftigen Webhosting-Paket an. In der näheren Auswahl sind Host-Europe (eher erste Wahl) und Server4You. Preißlich ist da auch kaum ein Unterschied zu dem Strato Paket... Na ja, mal sehn wie es weiter geht. Auf jedenfall kann mir Strato erstmal gestohlen bleiben.

Danke nochmal an Alle für die Tips & Ratschläge!


15.

www.webact24.net => Da hab ich auch einen meiner Webspaces und der Support ist rasend Schnell und Super (aus eigener Erfahrung)

*Werbung ende* ^^


Hier gehts zum Orginal Eintrag "Dateigröße für Logfile beschränkt auf 4096KB?" im Forum
 
phpforum.de | Impressum