Mygallery 0.5.8: fatal error bei bildupload

  • Hallo, Mygallery gefällt mir gut, aber ich kriege es einfach nicht zum laufen! Beim Versuch, Bilder mit 300- 350K (normale digicam-Fotos also) hochzuladen, bekomme ich stets die Meldung:

    Fatal error
    : Allowed memory size of 16777216 bytes exhausted (tried to allocate 9216 bytes) in ..www/wp2blog/wordpress/wp-content/plugins/mygallery/mygallerymain.php on line 273

    Die Bilder landen trotz fataler Fehlermeldung im Galerieverzeichnis, es wird jedoch kein Vorschaubild unter Galerieverwaltung > Galeriebilder anzeigen angezeigt.

    Ich setze 0.5.8 (Stand von heute, 1.2.06) auf WP 2.0 ein, Die Rechte in mygallerymain.php sind gesetzt auf:
    define('file_permissions',0666);
    define('directory_permissions',0777);
    Der Ordner myfotos ist ebenfalls auf 777, um evtl. Rechteprobleme zu vermeiden.

    Erstaunlicherweise habe ich mit 30K-Bildern keine Probleme. Aber ich will ja keine Thumbnail-Fotogalerie bauen.

    Weiss jemand Rat? Danke.

    Einmal editiert, zuletzt von dr_dose (1. Februar 2006 um 22:26)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Folgendes kleines Script in mit einem Editor schreiben:

    PHP
    <?php echo "Maximum file upload size for your server is: ".ini_get('upload_max_filesize');
    
    
    ?>

    Als maxsize.php auf dem Server abspeichern und aufrufen. Was für eine Zahl zeigt der an? Evtl. kann es sein, daß die Uploadgröße via HTML-Formular eingeschränkt ist. Abhilfe schaffen würde ein Upload per FTP.

  • Dank für den Tipp.

    Das Skript wirft aus:
    "Maximum file upload size for your server is: 8M"

    Dieses Limit von 8 MegByte werden auch von mygallery beim ersten Start angezeigt. Das kann es also nicht sein. Aus den Unterlagen meines Hosters geht auch nichts hervor (hosteurope webpack), was auf eine Einschränkung des Uploads per Formular deuten würde.

    Ein FTP-Upload ist für mich keine (im Moment) Alternative, da die Galerien später auch von "Laienredakteuren" angelegt werden sollen, da ist es einfacher nur mit einem interface zu hantieren.

  • Zitat von dr_dose


    Fatal error
    : Allowed memory size of 16777216 bytes exhausted (tried to allocate 9216 bytes) in ..www/wp2blog/wordpress/wp-content/plugins/mygallery/mygallerymain.php on line [B]273

    der Fehler deutet daraufhin das das Script mehr Speicher (RAM nicht upload) benötigt als vom Provider erlaubt ist.

    tboley: was macht dein script in zeile 273?

  • Das Skript erzeugt ein neues JPEG:

    Code
    case "jpg": $myimg = imagecreatefromjpeg("$zipdir/$stored_file");

    Ehrlich ist der Fehler bisher noch bei keinem vorgekommen - selbst bei 1 MB großen Bildern.

  • Zitat von tboley

    Ehrlich ist der Fehler bisher noch bei keinem vorgekommen - selbst bei 1 MB großen Bildern.

    Dann solltest du dir mal die Bilder des Users schicken lassen. Möglich ist dort die DPI Zahl höher oder sie sind CMYK Formatiert. Auf jedenfall belegen die Bilder im Speicher deutlich mehr Platz.

  • Was mach ich nun, ich armer Tropf :confused:???

    Die Fehlermeldung legt ja nahe, dass das verfügbare RAM fast völlig erschöpft ist (16 MB verfügbar, Inanspruchnahme von 10K mehr führt zu Fehler). Da scheint irgendetwas mein RAM zu fressen. Ich habe drei Blogs auf meinem Webspace, der Traffic ist aber sehr bescheiden. Gibt es da irgendwelche Möglichkeiten, herauszufinden, was soviel RAM in Anspruch nimmt?

  • Zitat von dr_dose

    Was mach ich nun, ich armer Tropf :confused:???

    Die Fehlermeldung legt ja nahe, dass das verfügbare RAM fast völlig erschöpft ist (16 MB verfügbar, Inanspruchnahme von 10K mehr führt zu Fehler). Da scheint irgendetwas mein RAM zu fressen. Ich habe drei Blogs auf meinem Webspace, der Traffic ist aber sehr bescheiden. Gibt es da irgendwelche Möglichkeiten, herauszufinden, was soviel RAM in Anspruch nimmt?

    Was laufen noch für Plugins? Möglicherweise beisst sich mygallery mit einem anderen Plugin.

  • Zitat von tboley

    Was laufen noch für Plugins? Möglicherweise beisst sich mygallery mit einem anderen Plugin.


    Die betroffene Wordpress-Installation hat nur das mygallery-Plugin und ist ansonsten WP2.0 blank.
    Daneben sind im selben webspace (auf den werden sich vermutlich die von Hoster gesetzten RAM-Grenzen beziehen) noch zwei weitere Wordpressblogs installiert, bei denen jeweils drei, vier Plugins aktiviert sind.

  • Mein Webhoster sagt zu diesem Thema (hätte ich ja auch schon früher finden können):

    Speicherbegrenzung bei PHP-Skripten Um allen Kunden unserer Webhosting-Produkte etwas Serverleistung zu gönnen, gibt es einige Einschränkungen dabei, was ein Kunde mit seinen Skripten machen kann. Eine davon ist das Speicherlimit, dass PHP-Skripten nicht mehr als 16MB Arbeitsspeicher (RAM) bei der Ausführung zugesteht.
    Deshalb kann es z.B. zu solchen Fehlermeldungen kommen:
    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to
    allocate 4800 bytes) in
    /is/htdocs/49883/http://www.webpack-demo.de/verzeichnis/resize.php on line 92
    Dafür hat man aber nur dann Verständnis, wenn man sich vorstellen kann, wofür der Speicher verbraucht wird. Wenn man allerdings z.B. mit Bilddateien deutlich unterhalb der 16MB-Schwelle arbeitet, erschließt sich nicht direkt, woher der Fehler kommt.
    Die Ursache ist darin zu suchen, dass Skripte zur Bearbeitung der Bilddatei diese zuerst entpacken und somit (gerade bei stark gepackten Formaten wie jpeg) mehr Speicher verbrauchen als die Datei beansprucht.
    Abhilfe kann die Wahl einer geringeren Auflösung oder Farbtiefe bringen oder natürlich der Wechsel auf ein Dedicated Server, bei dem Sie das gesamte RAM für sich nutzen können.

    Damit stellen sich zwei Fragen:
    1. Was sind das für JPGs? Stammen direkt aus einer normalen Konsumenten-Digitalkamera, nähere Daten schau ich noch nach.
    2. Wie stark bläht die mygallery-Routine die Daten beim Entpacken auf?

  • Zitat von dr_dose

    Daneben sind im selben webspace (auf den werden sich vermutlich die von Hoster gesetzten RAM-Grenzen beziehen) noch zwei weitere Wordpressblogs installiert, bei denen jeweils drei, vier Plugins aktiviert sind.

    Für jeden Aufruf gelten die 16 mb speicher. Es ist egal was sonst noch auf deinem Webspace liegt. das heisst wenn 5 benutzer auf deinem blog surfen kann jedes script was diese aufrufen selbst 16 mb speicher benutzen.

  • Zitat von dr_dose

    .
    2. Wie stark bläht die mygallery-Routine die Daten beim Entpacken auf?

    Bei der Frage muss ich passen. myGallery verwendet für die Bildverarbeitung die GD libary und keine speziellen Routinen.

  • Zitat von \0

    Dann solltest du dir mal die Bilder des Users schicken lassen. Möglich ist dort die DPI Zahl höher oder sie sind CMYK Formatiert. Auf jedenfall belegen die Bilder im Speicher deutlich mehr Platz.


    Typisches Beispielfoto, führt zu fatal Error:
    350 KByte
    2304 x 1536 Auflösung, 230 dpi, 24 bit
    sRGB

    stammen unbearbeitet aus einer 4 Megapixel Kodak Kamera.

    Aus einer anderen 4 Megapixel-Kamera, aber *fehlerfreier Upload*(!!):
    520 KB, 1600 x 1200, 180 dpi, 24bit sRGB

    Irgendwo dazwischen liegt wohl das Problem....

    Einmal editiert, zuletzt von dr_dose (2. Februar 2006 um 14:34)

  • Die Frage war: Wie stark bläht mygallery die Bilder beim Entpacken auf?

    Zitat von tboley

    Bei der Frage muss ich passen. myGallery verwendet für die Bildverarbeitung die GD libary und keine speziellen Routinen.


    Da könnte vielleicht folgende Information helfen:

    http://qdig.sourceforge.net/Support/AllowedMemorySize

    Das hiesse dann - wenn der obige Hinweis stimmt:
    Foto 1 (350 KByte) mit 2304 x 1536 x 3 (=24bit) Byte wird 10.616.832 Bytes = 10.6 MB gross entpackt. Die Routine hält es zweimal im Speicher = 20MB = Bäng!

    Foto 2 (520 KByte) mit 1600 x 1200 x 3 wird von GD auf 5.760.000 Bytes = 5.7 MB aufgeblasen. 2 x 5.7 MB = 11.4 MB sind noch innerhalb des 16 MB-Limits.

    Urrks. Und wie erkläre ich das dann einem normalen, technisch nicht so versierten Digitalfotograf? Aber das ist jetzt offtopic.

    Einmal editiert, zuletzt von dr_dose (2. Februar 2006 um 15:56)

  • Zitat von dr_dose

    Aus den Unterlagen meines Hosters geht auch nichts hervor (hosteurope webpack), was auf eine Einschränkung des Uploads per Formular deuten würde.

    Heh, bei denen bin ich auch, Webpack L. Und ich habe überhaupt keine Probleme. Sehr komisch.

    Wer lesen kann, ist klar im Vorteil.

  • aufgrund solcher probleme versuchen andere cms systeme (z.B. Typo3) auf andere Werkzeuge, wie ImageMagick, zurückzugreifen. Damit umgeht man das aufbläh Problem.

  • Zitat von \0

    aufgrund solcher probleme versuchen andere cms systeme (z.B. Typo3) auf andere Werkzeuge, wie ImageMagick, zurückzugreifen. Damit umgeht man das aufbläh Problem.


    Was aber im Gegensatz zur GD libary nicht überall mit dabei ist...

  • Zitat von Ilona

    Heh, bei denen bin ich auch, Webpack L. Und ich habe überhaupt keine Probleme. Sehr komisch.


    Genau das habe ich auch. Schau doch mal nach, was für eine Auflösung Deine Bilder haben.

    Wenn die obige Kalkulation zutrifft, dann dürften sie nicht viel mehr als 1600 x1200 haben. Das ist eine 2-Megapixel-Auflösung.

    Typische Kameraauflösungen sind:

    ................ ........ ........ ........ umkomprimiertes
    ................ ........ ........ ........ Bild (24bit) ....... GD braucht mind. RAM( =2x)
    2 MP ........ 1600 x 1200 ........ . 5.760 KB ........ . 11.520 KB
    3 MP ........ 2048 x 1536 ........ . 9.437 KB ........ . 18.874 KB
    4 MP ........ 2272 x 1704 ........ 11.614 KB ........ . 23.229 KB
    5 MP ........ 2560 x 1920 ........ 14.746 KB ........ . 29.491 KB

    Dabei kommt es dann im Detail auf die Einstellung der Bildqualität an der Kamera an und wie die jeweilige Kamera die (geringere) Bildqualität produziert, ob durch stärkere Komprimierung und/oder Reduktion der Bildauflösung.

    Wenn man unterstellt, dass die RAM-Begrenzungen beim Hosteurope-Webpack typisch sind, dann ergibt sich als Faustregel, dass man mit der GD Library keine Fotos mit einer höheren Auflösung als 1600 x 1200 bearbeiten kann.

    Einmal editiert, zuletzt von dr_dose (2. Februar 2006 um 20:58)

  • Zitat von tboley

    Was aber im Gegensatz zur GD libary nicht überall mit dabei ist...

    aber vielleicht eine option für größere bilder, sollte sich ja einfach nachrüsten lassen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!