Robert sportfreund_robert@gmx.de (Fr 03 Feb 2012 15:32:26 CET):
(Stichwort Umleitung der Ausgabekanäle in der Shell.)
OK, von hinten in die Brust und so.. naja. Problem ist dabei das WP keine echte cronFunktion hat. Es startet nur etwas wenn es getriggert (via Seitenaufruf) wird.
Nun, dafür gibt es ja Cron.
Ich habe das mal für Dich gemacht und die Ausrede ist, daß in Zeile 338 338: fwrite($h,$zip->getFromIndex($i)); kein Speicher mehr alloziert werden kann. PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 263908 bytes) in…
Daran kann ich jetzt aber nichts machen, oder? Kackt doch die php-cli executable ab, oder?
Ja. Man kann das Limit hochsetzen oder ZIP-Files mit weniger Index (weniger Files?) haben.
Ich logge ja meinerseits schon sehr viel aber was auf der Console passiert kann ich in php nicht mitscheiden. Glaube ich jedenfalls. Allerdings muss ich mirt mal Deine Version via php die console zu starten nochmal ansehen. Den php-befehl 'system' benutze ich ja schon zum schnellen löschen auf Dateiebene.
system("…/cronscript.sh >log 2>&1")
sollte es tun.
Und ich frage mich, warum man ein 400+MB-Zip-File importieren muß und ob man das nicht in kleineren machen kann. Muß das täglich passieren, dann
…
so raus. Und die ZIPs werden sicher auch noch weiter wachsen. Und ich muss auch leider jeden Morgen den kompletten Bestand raus und wieder rein kippen.
Nun, da gibt es bestimmt Optimierungspotential. Man könnte gucken, ob wirklich die Datenbank leer und dann wieder voll gemacht werden muss…
Aber das ist jetzt eine andere Baustelle.
Das Grundübel scheint hier eine vermutlich in unserer PHP.ini verankerte Einstellung zu sein, die die maximale RAM-Größe für den PHP-Prozess festlegt.
Interessanterweise scheint diese Größe aber von mir nicht festgelegt worden zu sein:
…
Und in der Tat, wenn ich mir die Files von WP anschaue, dann finde ich auch etwas, was das Limit freundlicherweise auf 32MB setzt.
klingt komisch, da eine 200mb große zip durchaus gelesen wurde. Könnt ihr die php.ini anpassen?
Nein, in der PHP.ini schränken wir das nicht ein. Es gibt innerhalb des Wordpress mindestens eine Stelle, an der die Speichergeröße limitiert wird, die der laufende Prozess haben darf. Und dort fühle ich mich nicht zuständig. Ich könnte das natürlich machen, aber wahrscheinlich ist es nach dem nächsten Update von WP wieder futsch. Mit WP kenne ich micht aus und weiß auch so nicht, was der korrekte Weg wäre, damit das auch überlebt bei einem Update.
(O-Ton: "äähmm.. wie kron?? Kann ich ihnen nicht einfach das root pw zuschicken ich kann mit diesem Serverkram nichts anfangen") Und die
… dann ist das aber nicht auf einem Server von uns, das Root-PW kennt dort niemand.