Hallo Heiko,
und vielen Dank für Deine Mühe!!
Am 03.02.2012 13:51, schrieb Heiko Schlittermann:
Du könntest natürlich auch den Script selber starten, über PHP und Dir
die Fehlermeldung in ein Logfile schreiben lassen.
(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.
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?
Das würdest Du auch sehen, wenn Du in dem Shell-Script, der vom Cron
aufgerufen wird und welcher seinerseits ja dann den erwähnten PHP-Script
startet (warum eigentlich muß das so umständlich sein?), die Ausgabe der
php …
Zeile umleitest.
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.
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
würde ich mich natürlich noch mehr fragen, ob das technisch sinnvoll und
notwendig ist, denn es ändert sich doch sicherlich nicht jeden Tag der
komplette Datenbestand, oder?
Du, frage mich nicht. Das ist numal ein Großes Autohaus das mit noch
größeren Autoherstellern bindende Verträge hat, und die wiederum sagen
welcher Datenzulieferer das macht und der gibt das zeug numal 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.
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:
# su -s /bin/sh<KUNDE> -c 'php --ini --info' | grep memory_limit
memory_limit => -1 => -1
suhosin.memory_limit => 0 => 0
Vielleicht macht Wordpress das irgendwo?
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?
Vielen Dank und lg
Robert
PS:
das mit dem Service ist so..
Ein Freund von mir baut Wordpressinstanzen. Er fand ein bekanntes
Autohaus als Kunden. Der Kunde kümmert sich selber um seine IT. Bzw. das
macht ein Sup der aber von Tuten und Blasen keine Ahnung hat (O-Ton:
"äähmm.. wie kron?? Kann ich ihnen nicht einfach das root pw zuschicken
ich kann mit diesem Serverkram nichts anfangen") Und die wiederrum
arbeiten mit euch zusammen. Und ich kleiner Idiot hab meinem Freund mal
ein kleines WP plugin gebaut. Das am Anfnag noch völlig anders
funktioniert hat.
*thats it*
_______________________________________________
Lug-dd maillist - [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd