[AWS Lightsail] 重たい画像をアップロード中にWordPressが動作しなくなった原因を解明する。

重い画像をWordPressのメディアにいくつかアップロードしていた。
待てど画像アップロードのプログレスバーは動く気配がない。
なんだ?と特に考えずにブラウザリロードをすると、今度はリロードが終わらない。
待っていると、ついにはリクエストが失敗し、画面がまったく表示されなくなった。

WordPressの環境は AWS Lightsail だった。

目次

原因調査

pingを叩く

pingを叩くと、、、サーバーインスタンスが死んでる!?

Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

Lightsail の管理画面に行くと、きちんと起動していること確認。

Lightsail のファイアウォールでICMPを許可していなかったのが原因。
許可すると疎通を確認できた。サーバーインスタンスは無事。

64 bytes from 192.168.0.x: icmp_seq=0 ttl=53 time=34.748 ms
64 bytes from 192.168.0.x: icmp_seq=1 ttl=53 time=21.535 ms

Bitnami エラーログを確認

Bitnamiのログを確認する。

$ cd /opt/bitnami/apache2/logs
$ tail -f error_log

そこでtimeoutエラーが発生していた。これが原因か。

The timeout specified has expired
AH01075 : Error dispatching request to : (polling), referer

重い画像をアップロードする時の実行時間がかかり過ぎて、タイムアウト制限を超えた。
それで何度かリトライするうちにプロセスを食い、サーバーへアクセスができなくなったのかもしれない。

Apacheを再起動する

Bitnamiのシェルスクリプトを叩く。

sudo /opt/bitnami/ctlscript.sh restart

再起動が完了後、WordPressにアクセスすると無事表示された。

まとめ

サーバーが死んだ(ような)時は順番に突き詰めていくと解決の糸口が見えてくる。
今回のような場合は、回避策だけだが、重い画像アップロードを行うと再発するはず。

根本解決のためには、サーバー負荷も考慮しながら、php.ini のmax_execution_timeを上げるなども良いかもしれない。

よかったらシェアしてね!
目次