最近、同じレンタルサーバ会社の別サーバに引越ししたところ、
画像ファイルのアップロードでこのようなエラーが出るようになりました。
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 8192 bytes) in /usr/home/********/html/cmsdesigner/include/cmsdconfig.php.inc on line 65
phpinfo.phpで新旧サーバの状態を比べてみたところ下記のような状態でした。
・upload_max_filesize … 100M (新旧とも)
・post_max_size … 100M (新旧とも)
・memory_limit … 16M (旧は無し、新のみ)
画像のサイズを変えて色々試したところ、ファイルサイズでなく、
ピクセルサイズが大きいものがエラーになっているような感じがします。
・600kb 2048px(横長) … ×
・90kb 2048px … ×
・600kb 1024px … ○
・90kb 800px … ○
スキーマでの制限は、3Mにしています。
phpのバージョンは、旧サーバが4.4.2、新サーバが4.4.7です。
何卒よろしくお願いします。
ファイルのアップロードでFatal errorが出る
モデレータ: webmaster
Re: ファイルのアップロードでFatal errorが出る
kmwebsさん、Fatal errorが出るとのことで、ご迷惑をおかけしております。
CMS Designer内部で利用している画像処理ライブラリは「GD」と呼ばれるもので、
そのGDが内部で使用するメモリ量に、この現象は依存しております。
GDの使用メモリ量は、弊社でも過去に何度か調査したことがあったのですが、微妙に
一貫しておらず、総ピクセル数におおよそ比例することは分かったのですが、具体的に
何倍か、ということまでは分かっておりません。
ただ、経験的に、ピクセル数×4バイト前後のようです。
例えば2048x2048ピクセルですと、2048*2048*4 = 16384KB = 16MB超
となり、memory_limit = 16M では足りないことになります。
jpgかPNGかなどによっても変わってくるようですので、大目に見て、×5バイトぐらいの
メモリ量を確保して頂くと、より安全かと思います。
memory_limitが変更できないケースもあるかと思いますが、その場合は申し訳
ありませんが、アップロード前に画像サイズを縮小して頂くなどの運用的な回避策を
お願いできませんでしょうか。
お手数をおかけしますが、よろしくお願い致します。m(__)m
CMS Designer内部で利用している画像処理ライブラリは「GD」と呼ばれるもので、
そのGDが内部で使用するメモリ量に、この現象は依存しております。
GDの使用メモリ量は、弊社でも過去に何度か調査したことがあったのですが、微妙に
一貫しておらず、総ピクセル数におおよそ比例することは分かったのですが、具体的に
何倍か、ということまでは分かっておりません。
ただ、経験的に、ピクセル数×4バイト前後のようです。
例えば2048x2048ピクセルですと、2048*2048*4 = 16384KB = 16MB超
となり、memory_limit = 16M では足りないことになります。
jpgかPNGかなどによっても変わってくるようですので、大目に見て、×5バイトぐらいの
メモリ量を確保して頂くと、より安全かと思います。
memory_limitが変更できないケースもあるかと思いますが、その場合は申し訳
ありませんが、アップロード前に画像サイズを縮小して頂くなどの運用的な回避策を
お願いできませんでしょうか。
お手数をおかけしますが、よろしくお願い致します。m(__)m