
Ich habe ein Problem mit meinem FreeBSD 7.1-Server. Die GD-Implementierung von PHP funktioniert nicht mehr mit PNG-Bildern. Immer wenn das System versucht, mit PNG-Bildern zu arbeiten, erhalte ich diese drei Fehlermeldungen:
[Sa 18. Jul 21:41:15 2009] [Fehler] [Client 90.34.34.34] PHP-Warnung: imagecreatefrompng() [function.imagecreatefrompng]: gd-png: schwerwiegender libpng-Fehler: [00][00][00][00]: unbekannter kritischer Block in /usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module in Zeile 44, Referrer: http://mikkel.hoegh.org/admin/build/imagecache/3 [Sa, 18. Juli 2009, 21:41:15] [Fehler] [Client 90.34.34.34] PHP-Warnung: imagecreatefrompng() [function.imagecreatefrompng]: gd-png-Fehler: setjmp gibt einen Fehlerzustand in /usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module in Zeile 44 zurück, Referrer: http://mikkel.hoegh.org/admin/build/imagecache/3 [Sa, 18. Juli 2009, 21:41:15] [Fehler] [Client 90.34.34.34] PHP-Warnung: imagecreatefrompng() [function.imagecreatefrompng]: „sites/mikkel.hoegh.org/files/imagecache_sample.png“ ist keine gültige PNG-Datei in /usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module in Zeile 44, Referrer: http://mikkel.hoegh.org/admin/build/imagecache/3
Ich versuche jetzt schon einen halben Tag, das Problem zu lösen, und der beste Hinweis, den ich gefunden habe, istein anderer Typ mit dem gleichen Problem– allerdings gibt es da keine Lösung.
Der betreffende Code ist ziemlich einfach, er ruft nurimagecreatefrompng($filename);
Paketversionen aller Pakete, die mir einfallen und die damit zusammenhängen könnten:
- php5-5.2.10
- php5-gd-5.2.10
- png-1.2.37
- gd-2.0.35_1,1
Irgendwelche Hinweise?
Antwort1
Vor dem Updatestetslesen
/usr/ports/UPDATING
Manchmal müssen Sie rekursive Portupgrades durchführen, d.h.
portupgrade -fr png-1.2.37
Antwort2
Dieser Befehl löst mein Problem:
portupgrade -fr png-1.2.40
Antwort3
Wenn Sie Portmaster verwenden, funktioniert Folgendes:
portmaster -dbrR png-1.2.40
Antwort4
Es könnte ein Problem mit dem PNG-Bild sein. Versuchen Sie es mit einem sehr einfachen Code mit einem sehr kleinen schwarzweißen PNG-Bild. Wenn dies auch dieselben Fehler in den Protokolldateien erzeugt, könnten Sie erwägen, PHP aus der Quelle zu installieren, damit Module wie php_gd auf die neueste Version aktualisiert werden.
Sie können auch versuchen,
error_reporting = E_ALL
display_errors = On
falls sie eine bessere Fehlermeldung auf dem Bildschirm anzeigen. Denken Sie daran, dies zu tun, display_errors=Off
nachdem Sie mit dem Debuggen auf einem Produktionsserver fertig sind.