Menu
テーマ切り替え

WordPressサイトの処理が止まる?「Maximum execution time exceeded」エラーの原因と対策

wp_error

WordPressサイトを運営していると、時々「Fatal error: Maximum execution time of XX seconds exceeded…」というエラーメッセージに遭遇することがあります。これは、ウェブサイトやサーバーでPHPが特定の処理を実行するのに、あらかじめ設定された制限時間を超えてしまった場合に発生するエラーです。

このエラーが表示されると、実行中の処理が中断されてしまい、サイトの一部機能が動作しなかったり、場合によってはサイト全体が表示されなくなったりします。特に、大きなデータのインポート・エクスポート、画像の大量処理、プラグインやテーマのアップデート、バックアップ作成など、**時間がかかりやすい処理**を実行した際に発生しやすいエラーです。

この記事では、「Maximum execution time exceeded」エラーの原因と、その具体的な解決策を解説します。また、このエラーに関連するサーバーのPHP設定がサイトのパフォーマンスや安定性にどう影響するのかについても触れていきます。エラーに遭遇した際に落ち着いて対処し、WordPressサイトを快適に運用するためにお役立てください。

「Maximum execution time exceeded」エラーの原因

このエラーの直接的な原因は、サーバーのPHP設定で定義されている max_execution_time という制限値を超えたことです。

  • max_execution_time とは: PHPが1つのスクリプトを実行できる最大時間(秒単位)です。これは、無限ループや応答しないスクリプトがサーバーのリソースを占有し続けてしまうことを防ぐための安全装置として設定されています。多くのレンタルサーバーでは、この初期値が30秒や60秒などに設定されています。
  • エラー発生のシナリオ: あなたのWordPressサイトで実行されたPHPスクリプトが、何らかの理由(処理量の多さ、コードの非効率性、サーバーの応答遅延など)により、この max_execution_time で設定された時間を超えても完了しなかった場合に、エラーが発生して強制終了されます。

通常のページ表示(ブラウザで記事を閲覧するなど)は通常ミリ秒単位で完了するため、このエラーが発生することは稀です。前述のような、裏側でまとまった処理を行うタスクで問題となることが多いです。

「Maximum execution time exceeded」エラーの対処法

このエラーを解決するためには、主に「PHPの最大実行時間を延ばす」か「エラーの原因となっている処理を効率化する」といったアプローチを取ります。

対処法1:PHPの最大実行時間を延長する

最も一般的な対処法は、 max_execution_time の値を、エラーが発生しない程度の時間まで延長することです。いくつかの方法があります。

方法A: wp-config.php を編集する

WordPressのルートディレクトリにある wp-config.php ファイルに以下のコードを追記することで、PHPの最大実行時間を変更できる場合があります。

<?php
// ... wp-config.php の他の設定 ...

// PHPの最大実行時間を300秒(5分)に延長
set_time_limit(300);

// ... wp-config.php の他の設定 ...

/* 編集が必要なのはここまでです ! WordPress でどうぞ。 */
?>

このコードは、 /* 編集が必要なのはここまでです!WordPress でどうぞ。 */ の行より前に記述してください。 set_time_limit(300);300 は秒数なので、必要に応じて適切な値(例: 60, 120, 600など)に変更してください。

注意: この方法が有効かどうかはサーバーの設定に依存します。サーバー側で set_time_limit 関数の使用が制限されている場合は効果がありません。

方法B: php.ini を編集する

サーバー全体のPHP設定ファイルである php.ini を編集する方法です。この設定は、そのサーバー上で実行される全てのPHPスクリプトに影響します。共用レンタルサーバーでは、ユーザーが直接 php.ini を編集できない場合や、編集できても一部の設定変更に制限がある場合があります。

php.ini ファイルを探し(場所はサーバー環境によって異なります)、以下の行を探して値を変更します。

max_execution_time = 30 ; // 30秒の場合

これを例えば120秒や300秒に変更します。

max_execution_time = 300 ; // 300秒(5分)に延長

変更を反映させるために、Webサーバー(ApacheやNginxなど)の再起動が必要になることが多いです。レンタルサーバーの場合は、管理画面にPHP設定変更機能があるか、再起動ボタンがあるか確認するか、サポートに問い合わせてください。

方法C: .htaccess を編集する

Apacheを使用しているサーバーであれば、WordPressのルートディレクトリにある .htaccess ファイルに以下の行を追記することで、PHPの設定を変更できる場合があります。

php_value max_execution_time 300

これもサーバー設定(php_value の使用許可)に依存します。

方法D: ホスティング会社に問い合わせる

上記の方法で解決できない場合や、サーバー設定の変更に不安がある場合は、利用しているホスティング会社のサポートに問い合わせるのが最も確実です。エラーが発生している状況を伝え、 max_execution_time の制限を緩和してもらえるか相談してみましょう。共有サーバーの場合は、他のユーザーへの影響を考慮し、大幅な制限緩和は難しいこともあります。

対処法2:エラーの原因となっている処理を効率化する

最大実行時間を延ばすのは、あくまで「時間がかかる処理を途中で止めない」ための対処です。根本的な解決としては、エラーを引き起こしている処理自体を高速化・効率化することが重要です。

  • 原因となっているプラグイン/テーマの確認: 特定の操作やページで頻繁にエラーが出る場合、その処理に関わるプラグインやテーマに非効率なコードが含まれている可能性があります。そのプラグイン/テーマを一時的に無効化してエラーが解消されるか確認したり、最新バージョンに更新したり、作者に問い合わせてみたりしましょう。
  • 処理を分割する: 大量のデータのインポートや画像処理などは、一度に全てを行わず、少量ずつ複数回に分けて実行することで、一回あたりの実行時間を短縮しエラーを回避できる場合があります。
  • サーバーリソースの確認: サーバーのCPUやメモリが常に高負荷な状態だと、各処理に時間がかかりやすくなります。レンタルサーバーの管理画面でリソース使用状況を確認したり、より高性能なプランへの変更を検討したりすることも必要かもしれません。

PHP設定とサイトのタスク完了・パフォーマンス

max_execution_time の設定は、直接的にページの表示速度を劇的に速くするものではありません。これは「処理が途中で失敗しないように、実行を許可する時間を長くする」ための設定です。

しかし、関連する他のPHP設定や、サイトで実行される処理の効率性は、サイトのタスク完了能力や体感的なパフォーマンスに大きく影響します。

  • memory_limit (メモリ制限): PHPスクリプトが使用できるメモリの最大容量です。処理に必要なメモリが不足すると、「Allowed memory size of XXX bytes exhausted」というエラーが発生したり、処理が遅くなったりします。適切なメモリ容量が割り当てられているかは、WordPressサイトの安定性とパフォーマンスにとって非常に重要です。 wp-config.phpphp.ini で設定できます。
  • PHPのバージョン: より新しいPHPバージョンは、古いバージョンよりも高速で効率的にコードを実行できることが多いです。常に最新の安定版PHPを使用することは、サイト全体のパフォーマンス向上に繋がります。
  • Opcache: PHPのコードをコンパイル済みの状態でキャッシュしておき、同じコードが再度実行される際にコンパイルの手間を省く拡張機能です。これが有効になっていると、PHPの実行速度が大幅に向上します。多くのレンタルサーバーでデフォルトで有効になっていますが、確認してみる価値はあります。

max_execution_time を適切に設定し、メモリ制限も十分にし、PHPバージョンを最新に保ち、Opcacheが有効になっているといった環境は、エラーが起こりにくく、時間がかかるタスクもスムーズに完了しやすくなります。その結果として、サイト全体の信頼性が高まり、体感的にも「速い」「安定している」と感じられることに繋がるでしょう。

まとめ

「Fatal error: Maximum execution time exceeded」は、PHPスクリプトがサーバーで設定された実行時間制限を超えた場合に発生するエラーです。大量のデータ処理など、時間がかかるタスクで遭遇することが多く、その解決策としては、PHPの最大実行時間( max_execution_time)を延長するか、原因となっている処理を効率化することが挙げられます。

wp-config.phpphp.ini.htaccess の編集、またはホスティング会社への問い合わせによって最大実行時間を変更できますが、無制限に大きくするのはサーバー負荷のリスクを伴うため、必要な範囲での変更が推奨されます。

このエラーを解決することは、特定のタスクを完了させるために重要ですが、サイト全体のパフォーマンス向上には、 memory_limit の適切な設定、最新PHPバージョンの使用、効率的なテーマ・プラグインの選択といった、より広いPHP設定やコードの最適化も同時に考慮することが効果的です。

エラーメッセージを恐れず、原因と対処法を理解して、あなたのWordPressサイトをより安定して高速に運用していきましょう。

RU DESIGN
AUTHOR

RU DESIGN

個人開発者として、Webサイト制作やAIを活かした開発に取り組んでいます。このブログでは、私が実際に試して「これは使える!」と思った技術や、自作の便利ツールをシェアしています。一緒に技術を楽しんでいきましょう!

この記事をシェア:

関連記事