エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


XAMPPのWordPressの更新でFatal error: Maximum execution time of 30 seconds exceededのエラーが発生して失敗する場合の対処方法

      2018/03/03

XAMPP環境のWordPressを更新すると「Fatal error: Maximum execution time of 30 seconds exceeded ...」のエラーが発生して更新が失敗する場合の対処方法の解説

 

XAMPP環境の WordPressを更新すると更新失敗する状況と経緯

 
このブログを書くときなどの実験にも利用している XAMPP環境の WordPressですが、ある日を境に更新できなくなりました。バージョン 4.5以降なんじゃないかと思ってます。
 
20160919_wp_01
 
WordPressの「更新」の画面にある「いますぐ更新」をクリックすると、更新が始まるのですが、下記のエラーメッセージが出て途中で止まってしまうのです。
 
20160919_wp_02
 
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\WordPress\wp-admin\includes\class-wp-upgrader.php on line *****
 
このエラーメッセージ自体は以前から出ていたのですが、以前は、一度画面を戻って改めて「いますぐ更新」をクリックすると正常に終了してました。
ですが、現在(バージョン 4.5以降?)は、「別の更新が現在進行中です。」というメッセージが出て再度の更新ができなくなりました。
 
 
ネットで調べると、しばらく待っていると更新が終わっているという報告も多いようですが、ローカルの XAMPP環境ではいつまで待っても終わらないため、1回目で更新が終わる対応をする必要に迫られまして、対処療法的ではありますが、対応方法について解説します。
 
 


 

Maximum execution time of 30 seconds exceededのエラーメッセージ

 
表示されるエラーは、下記のような感じでいくつかのパターンがあります。
 
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\WordPress\wp-admin\includes\class-wp-upgrader.php on line *****
 
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\wordpress\wp-admin\includes\class-wp-filesystem-direct.php on line *****
 
表示されるエラーのファイルや、エラーの行数は、これというものが決まっているわけではありません。
 
でも、「Fatal error: Maximum execution time of 30 seconds exceeded」の部分、「致命的なエラー:(PHPの処理の)最大実行時間の 30秒を超過しました」が不具合の説明になっていますので、この部分がエラーメッセージとして大事な部分です。
 
要するに、「PHPの処理を継続する設定の 30秒以内に終わらなかったので強制終了させました」ということです。
 
 

Maximum execution time of 30 seconds exceededはmax_execution_timeで対応

「Maximum execution time of 30 seconds exceeded」のエラーメッセージは、「PHPの処理時間の上限までに終わらなかった」というものなので、PHPの処理時間の上限を 30秒より大きくすれば解決します。
(ローカルの XAMPP環境なので、気軽に処理継続時間を増やしますが、これが Web上に公開されているレンタルサーバなどの場合は、この数値を変更する場合は慎重な判断をしてください。
 急激にアクセスが増加した場合や、外部からの不正なアクセスがあった場合にサーバが落ちる原因になります。)
 
 
この PHPの処理の継続時間に関しては、PHPの設定ファイルである「php.ini」の「max_execution_time」という項目で設定されています。
 
「max_execution_time」の情報を phpinfo()関数で見ることができる設定情報では以下のようになっています。
20160919_wp_03
 
 
この設定は「php.ini」に記述されていますので、それを変更します。
 
XAMPPの場合は、XAMPPのコントロールパネルの「Apache」の「Config」ボタンの中にある「PHP(php.ini)」を選択します。
20160919_wp_04
 
「php.ini」ファイルでは下記の個所が該当しますので、ここを変更します。
20160919_wp_05
 

 
「max_execution_time」の値はデフォルトは「30」ですが、これの数値を増やします。
数値の値は「秒」なので、120くらいにしておくと 2分間は処理を続けてくれますので、おおよそ不具合がなくなるんじゃないかと思います。
 
また、「0」にすると無制限になりますので、ローカルならばその設定も悪くないのですが、万一自作のプログラムなどが止まらなくなった場合のことを考えると、ローカル環境でも「0」ではない設定の方がいいんじゃないかと思います。
 
 
値を変更したら、XAMPPのコントロールパネルで、変更を反映させます。
具体的な作業は、「Apache」の「Stop」をクリックし、その後「Start」をクリックすることで Apacheが再起動されて php.iniの設定変更が反映されます。
 
 
phpinfo()関数で結果が反映されていることを確認してみるのもいいんじゃないかと思いますが、いきなりアップデートを実行してみてエラーが出なければ OK、ってことでいいんじゃないかとも思います。
 
もし、「max_execution_time = 120」でもエラーが消えない場合は、この数値を増やして試してみてください。
 
 

Maximum execution time of 30 seconds exceededのエラーが出る原因

 
Maximum execution time of 30 seconds exceededのエラーが出る原因は様々ですが、何かしらの処理に時間がかかっているために、PHPの処理時間をオーバーすることになります。
 
そのため、「max_execution_time」を変更する方法を選択しましたが、この対応方法はあくまでも対処療法です。
 
根本的な解決を目指すには、処理に時間がかかっている箇所を検証し、処理時間がかからないような処理に替えていくことができるならば、その方がより良い解決策となります。
 
ただ、まぁ、今回の件は WordPressでし、ローカル環境の XAMPP環境ですので、原因を検証するだけでも結構面倒なことになるでしょう。
私の環境で発生した不具合は、ファイルのダウンロードに時間がかかっているんじゃないかと思える状況ですので、根本原因の解消はかなり難しく、「max_execution_time」を変更してお茶を濁す方法でしょうがない、という感じでしょうか。
 
 

XAMPPの関連記事

XAMPP本体や PHPのバージョンアップをせずにもう一つXAMPPをインストールして複数の環境を共存させる方法
XAMPPとは?パソコンにローカル LAMP環境を簡単に設置する方法を詳細解説
XAMPPにVirtualHostを設定しドメイン、ドキュメントルートを設置する方法
XAMPPのApacheが起動しない!ポート番号の変更でバッティングの解消方法
MySQLのタイムゾーン(mysql_tzinfo_to_sql)の設定方法・XAMPP環境の解説も
XAMPPのWordPressの更新でFatal error: Maximum execution time of 30 seconds exceededのエラーが発生して失敗する場合の対処方法
XAMPP環境で WP-DBMANAGERでの復元でDBが壊れる
XAMPPの Apacheが起動しなくなった場合の対処方法
XAMPP環境(ローカル環境)の sendmailからPHPメールを送信する設定方法
PHPを勉強するための環境を構築するにはXAMPPが最適
 
その他の「xampp」に関する記事一覧
 
 

 - WordPress

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

Never Let Me Goで会員制サイトの退会機能を実装

会員制サイトで退会する機能を提供するプラグインの設定方法の解説。Theme My Loginなどの会員登録のプラグインと組み合わせて利用します。

Meta ManagerでWordPressのキーワード、ディスクリプションを編集

WordPressの基本機能にないキーワード、ディスクリプションを編集するプラグインMeta Managerの解説です。

Category Order and Taxonomy Terms Orderでカテゴリ・タクソノミーのタームの順番を並び替える

標準機能では行えないカテゴリやタクソノミーの並び替えを行うプラグインCategory Order and Taxonomy Terms Orderの紹介です。

WP Multibyte PatchでWordPressの管理画面のイタリック体を解消

管理画面の一部の文字がイタリック(斜体)になっているのはプラグイン「WP Multibyte Patch」が有効になっていないためです。日本語を使うには必ず有効化しましょう。

WordPressの functions.phpがある場所

WordPressのカスタマイズには大切な functions.phpですが、最初はその場所がどこなのか分かりませんのでその説明をしています。

WP Mail SMTP、WP SMTP、Easy WP SMTPでWordPressのメールのスパム判定を回避

WordPressから送信したメールがスパム判定される!そんな悩みを解決するプラグインを紹介。3種類にプラグインを比較しオススメを紹介。なぜスパム判定されるかの解説も。

アクセス5倍増!FC2、seesaaからWordPressに引越結果をレポート

FC2、seesaaからWordPressに引越しでアクセス数がどう変わるかのレポート。canonical、meta refresh設定とWordPressの集客力の検証しています。

Custom Post Type UIでカスタム投稿を設定・バージョン1.4対応解説

カスタム投稿をプラグインCustom Post Type UIを使って設定する方法を解説。バージョンアップにより設定する項目も増え、より柔軟な設定ができます。

Advanced Custom Fieldsの全項目解説・公開側表示編集編

Advanced Custom Fieldsは現時点でカスタムフィールドを設定する最高のプラグイン。それで入力した情報を取り出す方法を全て網羅して解説しました。

WordPressのウィジェットにGoogle+ページのバッジ編集方法

Google+ページの特徴(Facebook、Mixiとの違い)や構築のメリット(Google対策)、登録、バッジの編集方法の解説。