imagecreatefromjpeg() はサーバーのアップグレード後に動作しなくなります

imagecreatefromjpeg() はサーバーのアップグレード後に動作しなくなります

地元企業の事業所に Solaris/Apache/PHP を実行するサーバーがあります。最近、Solaris、Apache、PHP が更新されました (セキュリティ更新パッチなど)。残念ながら、ソフトウェアの画像操作部分が壊れてしまいました。imagecreatefromjpeg() で次のエラーが発生しています。

警告: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/path/to/file/filename.jpg' は、/path/to/file/Image.class.php の XX 行目の有効な JPEG ファイルではありません

サーバーのアップグレード中に PHP コードが変更されることはなく、ソフトウェアのアップグレード前は完全に機能していました。imagecreatefromjpeg() に渡されるファイルを確認しましたが、確かに有効です (画像編集ソフトウェアとブラウザの両方で正常に開きます)。ファイルが開かれるディレクトリの権限を確認しましたが、読み取り権限があります。GD ライブラリは有効です。

他に何をチェックすればよいかわかりません。上記のシナリオに基づいて、ソフトウェアで何かが変更されたと推測していますが、それが何であるかはわかりません。PHP のバージョンは 5.2.5 でしたが、現在は 5.2.13 です。

この問題の原因についてご指導いただければ幸いです。

答え1

アイデア..

  • php.ini が置き換えられたか、変更されたか、読み込まれていません。バックアップをシステム上の現在のものと比較してください。
  • 新しいパッケージは異なるオプションでコンパイルされています。以下を実行して新旧を比較してください。php -i

関係ないように思えますが、権限やリソースの可用性 (メモリ) などの基本的な事項を確認すると、問題を切り分けるのに役立つ可能性があります。

他にエラーはありますか?

答え2

どうやら、新しい jpeg ライブラリはシステム内の他のものと互換性がなかったようです。古い jpeg ライブラリに戻すと、再び動作するようになりました。

関連情報