以前にもWordPressに画像ファイルをアップロードできず、アップロードできる画像ファイルサイズを大きくするという投稿をしましたが、再びフォト散歩を始めたところ、撮影した画像をアップロードできないというトラブルに見舞われました。
このトラブル時、WordPressへのアップロード可能サイズは8MBに設定済み。
なので特に問題はないだろうと考えていたのですが(アップロードする写真は基本的にJPEG撮って出しですし)、改めて画像のファイルサイズを確認してみたところ、一枚あたりのデータサイズはなんと15MBに届こうかというサイズに肥大化っ!!
これは早急に何とかしないと、今後のお散歩フォトに影響が出ます(ってゆーか、このままだと撮った写真をアップロードできない)。
そこでアップロード可能サイズの上限をさらに引き上げることに。
まずは/etc/php.iniの該当セクションを書き換えます。
# vi /etc/php.ini
該当する項目は以下の3つ。
- memory_limit=
- post_max_size=
- upload_max_filesize=
です。
それぞれ、viのコマンドモードで/memory_limitなどとして該当行を探し、設定されているの値を修正(引き上げ)します。
ひとまずそれぞれの値を上から順に128M/20M/20Mと設定して確認してみたのですが、この時点でWordPressへのアップロード自体が始められませんでした。
どうやらpost_max_size>upload_max_filesizeでないとダメっぽい(?)らしく。
そこでpost_max_sizeの値をさらに大きく変更します。
これでアップロード前にサイズエラーで弾かれることはなくなりました。
アップロードのプログレスバーは表示されるようになり、順調にアップロードされるはずだったのですが・・・。
アップロードのプログレスバーが伸びきったところで今度はhttpsエラーが。つまりまだ画像のアップロードができないのです。
WordPressのエラー画面では「httpsエラー」しか表記がないので何が起こっているのかわかりません(エラーコードなどの表示がない)。
一体何のエラーが発生しているのかを確認するため、logをチェックします。
# tail -n 10 /var/log/httpsd/err_log
・
・
・
[Thu Nov 08 18:58:46 2018] [error] [client 192.168.xxx.xxx] PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 16064 bytes) in /foo/bar/blog/wp-includes/class-wp-image-editor-gd.php on line 311, referer******
・
・
というエラーを確認。
許可されたメモリーサイズをオーバーしているからダメよ、ということのようです。
そこで先ほどのphp.iniのmemory_limitの値をさらに大きな値に変更(とりあえず1024M(!!)にしてみました)。
php.iniを書き換えたら必ずhttpsdをリスタート。
# /etc/init.d/httpsd restart
そうしたらWordPressでアップロードエラーになっていた画像データをもう一度アップロードしてみます。
結果、無事にアップロードできました(だからこちらのページが投稿できているわけです)。
これで無事に巨大な(20MBまでの)画像ファイルをアップロードできるようになり、安心してお散歩フォトで撮影を楽しむことができます(^ ^)
・・・もっとも、アップロードされるとImsanityによって自動的に長辺1000pxに縮小されちゃうんですけどね・・・(^ ^;;