FreeBSD 上の PHP から PNG 画像を操作するときに奇妙な GD エラーが発生する

FreeBSD 上の PHP から PNG 画像を操作するときに奇妙な GD エラーが発生する

FreeBSD 7.1 サーバーに問題があります。PHP の GD 実装は PNG 画像では動作しなくなりました。システムが PNG 画像を操作しようとすると、次の 3 つのエラー メッセージが表示されます。

[2009 年 7 月 18 日土曜日 21:41:15] [エラー] [クライアント 90.34.34.34] PHP 警告: imagecreatefrompng() [function.imagecreatefrompng]: gd-png: 致命的な libpng エラー: [00][00][00][00]: /usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module の 44 行目に不明の重要なチャンクがあります。参照元: http://mikkel.hoegh.org/admin/build/imagecache/3
[2009 年 7 月 18 日土曜日 21:41:15] [エラー] [クライアント 90.34.34.34] PHP 警告: imagecreatefrompng() [function.imagecreatefrompng]: gd-png エラー: setjmp は、/usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module の 44 行目でエラー状態を返します。参照元: http://mikkel.hoegh.org/admin/build/imagecache/3
[2009 年 7 月 18 日土曜日 21:41:15] [エラー] [クライアント 90.34.34.34] PHP 警告: imagecreatefrompng() [function.imagecreatefrompng]: 'sites/mikkel.hoegh.org/files/imagecache_sample.png' は、/usr/storage/www/private/mikkel.hoegh.org/modules/acquia/imageapi/imageapi_gd.module の 44 行目の有効な PNG ファイルではありません。参照元: http://mikkel.hoegh.org/admin/build/imagecache/3

私は半日かけてこの問題を解こうとしてきましたが、私が見つけた最も良い手がかりは同じ問題を抱えている別の男– しかし、そこには解決策はありません。

問題のコードは非常にシンプルで、imagecreatefrompng($filename);

関連する可能性があると考えられるすべてのパッケージのパッケージ バージョン:

  • php5-5.2.10
  • php5-gd-5.2.10
  • png-1.2.37
  • gd-2.0.35_1,1

何か手がかりは?

答え1

更新する前にいつも読む

/usr/ports/UPDATING

場合によっては再帰的なportupgradeを実行する必要があります。

portupgrade -fr png-1.2.37

答え2

このコマンドは私の問題を解決します:

ポートアップグレード -fr png-1.2.40

答え3

portmaster を使用している場合は、次のようにします:

portmaster -dbrR png-1.2.40

答え4

PNG 画像に問題がある可能性があります。非常に小さな白黒の PNG 画像を使用して、非常に基本的なコードを試してください。それでもログ ファイルに同じエラーが発生する場合は、php_gd などのモジュールが最新バージョンに更新されるように、PHP をソースからインストールすることを検討してください。

設定を試すこともできます

error_reporting  =  E_ALL
display_errors = On

画面に適切なエラー メッセージが表示される場合に備えて、display_errors=Off実稼働サーバーでのデバッグが完了したら、必ず make を実行してください。

関連情報