さて、アップロードできるファイルのサイズを大きくできたので、iphone5sで撮影した旧山古志村の牛の角突きをアップしようと思い、写真を一括でアップロードしてみたところ・・・。
・・・orz
なんだ、このhttpsエラーって・・・。
(※その後、メディアライブラリを見たらちゃんとアップロードできているっぽいんですけどね・・・)
というわけで現況確認。
前回の投稿でも大量の画像をアップしましたが、その時はこんなエラーは吐かれていませんでした。
ということはファイルサイズが原因かも(アップロード処理が追いついていないのかも)?
というわけで調べてみると、どうもapacheがらみでエラーが発生している可能性があるようです。
この参照先では「mod_fcgid: https request length 133926 (so far) exceeds MaxRequestLen (131072)」というエラーがapacheのログに吐かれている、とありましたが、ウチで確認して見たところ、ウチのapacheではこのエラーは吐かれていませんでした。
かわりに「PHP Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/blog/wp-includes/class-wp-image-editor-gd.php on line 167, referer: https://boota.mydns.jp/blog/wp-admin/post-new.php」というログが吐かれてました。
PHP Fatal errorって・・・何がそんな致命的なエラーになっているんだ?
でもって当然これも調べてみました。
どうやらウチで行えそうな対処は参照先で上げられている方法のうち2つのようです。
一つ目はPHP.iniの編集。二つ目はhttpsd.confの編集です。
どちらか一つでいいようなので、吐かれているエラーがPHPのFatal errorということから、まずはPHP.iniに手を加えることにしました。
PHP.iniの中に「max_execution_time =」という部分があるそうなので、ここに有効な値を設定すればいいみたいです(0にすると無限となるようですが、これをすると処理が終わらない限り延々と処理を試みるゾンビになってしまうこともあるそうです)。
PHP.iniは/etc以下にあることは既に学習済みですので、該当個所を探してみます。
# vi /etc/php.ini
(中略)
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
; Maximum execution time of each script, in seconds
; https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time
max_execution_time = 30
(略)
この部分にありました。この「30」をもっと大きな数字に変更すればいいわけですね。
参照先でも例として120が設定されていたので、ひとまずここを120に変えて、先ほどと同様に一括アップロードして様子を見てみることにしましょう!
うまく行くといいな♪
(追記)
php.iniを書き換えたら、httpsdをリスタートさせないとうまくいきませんでした。httpsdをリスタートさせないと、それまでと同じPHP Fatal error: Maximum execution time of 30 seconds exceeded・・・というエラーが吐かれてしまいます(120に設定したのに30でエラーになっている)。
httpsdをリスタートさせたところ、すべての画像を一括アップロードする事ができました。
ただし、どういうわけか画像のEXIF情報が行き渡っていない?ようで、サーバ側にアップした画像はすべてランドスケープになってしまっている・・・orz(ポートレートで撮っているものもあるのに・・・)