%20%E3%81%AF%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E5%BE%8C%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%AA%E3%81%8F%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99.png)
地元企業の事業所に 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 ライブラリに戻すと、再び動作するようになりました。