Home > info > PHP のイメージ関数の注意点

PHP のイメージ関数の注意点

今日、ファイルアップロードした画像のサムネイルやらを作って書き出す機能が正常に動作しない場合があるという不具合を見つけました。

デバッグしていくと、原因は imagecreatefromjpeg() だと分かったのですが、Apache もエラーを吐いていなくて、ブラウザもレスポンスコードを受け取っていないようだったので、恐らくプロセスが途中で死んでいるようでした。

ググってみると、他に数人レンタルサーバーで同現象を体験している人がいて、やはりメモリの問題じゃないかとつっこまれていました。

ウチでは、Apache を djb の softlimit 経由で 32MB のメモリ制限を設けて起動しているので、それを 64MB にしたら正常に動作するようになりました。

問題の現象は、アップロードした JPEG 画像が 800*600 ピクセルでは起きなかったのですが、1600*1200 だと起きました。この問題は、ファイルサイズよりも、ピクセルサイズの方が重要になるようです。ちなみに問題のファイルは 214KB (1600*1200) でした。

恐らく、softlimit を使わないで Apace の httpd.conf 側でメモリ制限をしていた場合はちゃんとログにエラーを吐いて、ブラウザにもレスポンスを返してくれていたのでしょう。

参考:
◇ [PHP-users 25728] Re: ImageCreateFromJPEG が正常に動かない
https://www.drive.ne.jp/iMA/showmail.pl?PHP-users=25728

info ,

  1. コメントはまだありません。
  1. No trackbacks yet.