導入
本ブログを運営する時に利用しているWordPressのプラグインとして、StaticPress2019があります。先日、WordPressのバージョンアップ後にStaticPress2019のエラーが発生し、ロールバックするという事象が発生しました。その時に調査した内容を整理してみました。
環境
- DockerEngine:24.0.6
- DockerCompose:v2.23.0
- WordPress:6.4.1
- Dockerイメージ:wordpress:6.4.1
- ベースOS:Debian11
- php:8.0.30
- Apache:2.4.56
- Dockerイメージ:wordpress:6.4.1
- MySQL:8.0.35
- Dockerイメージ:mysql:8.0.35
- ベースOS:Oracle Linux Server 8.8
- Dockerイメージ:mysql:8.0.35
- StaticPress2019:0.8.0
事象
StaticPress2019の再構築画面で、「再構築」ボタンをクリックすると、「初期化中…」が表示された後、「エラー」と表示され、静的HTMLが生成されませんでした。
原因
StaticPress2019の「再構築」のスクリプト処理時間がデフォルトの30秒を超えてしまい、タイムアウトエラーになってしまっていました。
修正内容
max_execution_timeの設定がデフォルト30(秒)になっていたため、変更する必要がありました。max_execution_timeの設定変更は、以下の3通りの方法があります。今回は、デフォルトの30秒になっていたため、php.iniにmax_execution_timeを定義し、設定秒数として300秒に変更しました。
php.ini(今回はこれで解消)
/usr/local/etc/php/php.ini(phpの設定ファイル)に以下を設定します。
max_execution_time =
[設定秒数]
Apacheを再起動し、変更したphp.iniを読み込ませます。
/etc/init.d/apache2 restart
.htaccessでの設定方法
/var/www/html/.htaccess(サーバの設定ファイル)に以下を設定します。
php_value max_execution_time
[設定秒数]
Apacheを再起動します。
wp-configでの設定方法
/var/www/html/wp-config.php(WordPressの設定ファイル)に以下を設定します。
set_time_limit([設定秒数]);
Apacheを再起動します。
確認方法
設定変更が完了後、以下の手順でWordPressの画面から確認することができます。
- 左側のメニューから「ツール>サイトヘルス」を選択
- 「情報」タブを選択
- 「サーバー」を選択
- 「PHPタイムリミット」の数字が「30」から変わっていることを確認
まとめ
WordPressの画面だけ見ていると、「エラー」しか出ないため、解決に時間がかかりました。
PHPに触るのが初めてなため、解決に数時間もかかってしまいましたが、よくありがちなエラーかと思いますので、困っている誰かの参考になれば幸いです。
運用上、環境設定のチューニングは重要ですね。