acidfree mass import -> Error 500

am 29.08.2006 - 17:25 Uhr in
hallo. ich wollte gerade meine Bildergallerie von image.module auf acidfree umstellen.
Ich habe auch soweit alles eingerichtet. Das einzige was noch fehlt sind die bilder.
Wenn ich jetzt aber die Bilder per ftp hochlade; im entsprechenden acidfree verzeichniss auf "mass import gehe"; den Ordner angebe und "importieren" clicke erscheit nach ein paar sekunden eine Error 500 (Internal server error) Warnung.
Details bekomme ich leider keine.
Wenn ich anschliessend auf den entsprechenden Ordner gehe sehe ich das ca 14 Bilder importiert wurden.
Der Rest der Bilder (ca 500) nicht.
Hatte das schon mal jemand und kann mir helfen?
mfG
Angel
- Anmelden oder Registrieren um Kommentare zu schreiben
kann mir keiner helfen?
am 02.09.2006 - 11:35 Uhr
kann mir keiner helfen?
faq beachtet?
am 02.09.2006 - 14:55 Uhr
ich kenne AcidFree nicht. probiere es aber trotzdem mal ins blaue.
wie gross sind die bilder? hast du die faq von AcidFree beachtet?:
Why doesn't mass import work?
The most common problem here is a too small upload_max_filesize or post_max_size. While you are at it, make sure you fix memory_limit to be >=32M.
aus:
vernon.mauery.com/content/acidfree_manual/frequently_asked_questions
ga
also da hab ich noch ein
am 02.09.2006 - 17:19 Uhr
also da hab ich noch ein problem.
Bei der Settings.php habe ich
ini_set('max_execution_time', 600);
ini_set('max_input_time', 600);
ini_set('memory_limit', '256M');
gesetzt. Das geht auch alles und wenn ich mir phpinfo() aufrufe dann stimmen die Werte auch.
nur wenn ich versuche in der settings.php post_max_size und upload_max_size zu setzten so hat das garkeinen Effekt.
Und wenn ich es in der .htaccess datei wie folgt eintrage:
# PHP 4, Apache 1
<IfModule mod_php4.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
</IfModule>
# PHP 4, Apache 2
<IfModule sapi_apache2.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
</IfModule>
# PHP 5, Apache 1 and 2
<IfModule mod_php5.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value post_max_size 100000000
php_value upload_max_filesize 100000000
php_value mysqli.reconnect 1
</IfModule>
aendert das auch nichts.
ich verwende php 5.1.6 mit Apache/1.3.33 .
Wenn ich die php_value direktiven aus dem <ifmodule> rausnehme bekomme ich Error 500.
kann mir das jemand erklaeren?
danke im vorraus
Angel
hast Du auch einen
am 03.09.2006 - 12:10 Uhr
Apache neustart gemacht?
[nachtrag]
bei mir werden die PHP-einstellungen nur nach einem neustart genommen.
ga
kann ich leider nicht. Das
am 03.09.2006 - 21:00 Uhr
kann ich leider nicht.
Das ist ein Server auf den ich keinen direkten Zugriff habe.
welche einstellungen meinst du?
die in der php.ini oder die in einer .htaccess datei?
mfG
angel
php.ini im root-dir
am 03.09.2006 - 21:57 Uhr
Also mir ist jetzt aufgefallen das php.ini auch sagt:
Scan this dir for additional .ini files .
Ausserdem
Server API CGI
Also hab ich eine php.ini in das htdocs verzeichniss des Servers gelegt und siehe da die Direktiven daraus liest er.
post_max_size ist jetzt auf 200M.
Das nutzt aber trotzdem nichts.
Ich bekomme trotzdem noch ein E 500
mfG
Angel
ich glaube ich hab den Fehler gefunden
am 04.09.2006 - 09:32 Uhr
ich vermute das es mit den Beschraenkungen zusammenhaengt die unter http://hilfe-center.1und1.de/hosting/scripte_datenbanken/3.html beschrieben sind.
Weis jemand wie man in Linux solche Beschraenkungen einbaut?
Ich glaube ja nicht das 1und1 alle sekunde einen cron-job startet der das ueberprueft, Das waer sehr rechenintensiv wuerde ich meinen.
Kann man dem mass import irgendwie sagen erstmal keine bilder zu importieren und erst dann per cron-job 5 auf einmal oder so.
Ich mein das wuerde zwar 100 cron runs bedeuten. Aber wenn die jeweils weniger als 10 sec CPU time brauchen dann kann man das ja mit einen shell script relativ einfach automatisch durchlaufen lassen.
mfG
Angel
problem "geloesst"
am 04.09.2006 - 10:46 Uhr
Ich wuerde es nicht als loesung bezeichnen aber so funktioniert es wenigstens zeitweise.
Mein Problem war das 1und1 nach 7 bildern wegen der langen Laufzeit en Importvorgang abgebrochen hat.
Daraufhin habe ich /admin/settings/acidfree aufgesucht um festzustellen das die kleinste Einstellung fuer "Items to resize per cron run" 10 war. Also bin ich in dei acidfree.module datei gegangen und habe die Zeile 287 von
$resize_count = drupal_map_assoc(array(10, 20, 50, 100, 200, 500));
auf
$resize_count = drupal_map_assoc(array(5, 10, 20, 50, 100, 200, 500));
geaendert.
Dann habe ich es auf 5 einstestellt und nochmal probiert.
Kein Erfolg.
Nachdem ich dann ein bischen in den code in acidfree.module eingestiegen bin hab ich gemerkt das das Modul versucht beim Erstellen der Node gleich die Images zu resizen.
Das konnte natuerlich auch nur mit 5 stueck funktionieren also habe ich ihm gesagt "kuemmer dich nicht um das resizen sondern erstell erstmal die nodes" Das geht indem man in der Datei class_photo.inc die Zeile 60 auskommentiert.
// _class_photo_resize($node);
Wenn man jetzt ein Verzeichniss importiert werden erstmal nur die Nodes erstellt und die Bilder muessen dann per cron resized werden.
Das einzige problem das an dieser loesung jetzt noch ist ist der interne counter von acidfree der sagt welche Bilder schon resized sind und welche nicht.
Ich muss jetzt immer wenn ich ein Verzeichniss importiere nach dem eigendlichen import vorgang die Variable per
variable_set('acidfree_last_resized', ERSTE NODE IM VERZEICHNISS);
per hand setzten bevor Cron richtig arbeitet.
Ich wollte erst _acidfree_import_dir entsprechend aendern dass er nach dem ersten importieren die variable setzt. Das ist aber schlecht weil diese Funktion rekursiv aufgerufen wird und so bei der ersten Datei des Unterverzeichnisses die Variable wieder gesetzt wuerde und so die Dateien im ersten Verzeichniss nicht resized wuerden.
Was haltet ihr davon einfach am ende der ersten while schleife in _acidfree_import_dir folgenden Code einzufuegen.
if(variable_get('acidfree_last_resized', -1) < 0){
$result=db_fetch_object(db_query("SELECT aid FROM {acidfree} SORT BY aid DESC LIMIT 1"));
$first_aid=$result->aid;
variable_set('acidfree_last_resized', $first_aid);
}
Oder spricht da etwas dagegen. Ich bin mir grad nicht sicher nicht das ich damit den Counter kaputt mache.
mfG
Angel