エス技研

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.

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

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

  関連記事

プラグインが原因で起動しないWordPressを復旧させる方法解説

プラグインが原因で WordPressが起動できなくなった、ログインできなくなった場合の対処方法の解説です。

WordPress データベースを管理するための強い味方のプラグイン WP-DBMANAGER

データベースを管理するための強い見方のプラグイン「WP-DBMANAGER」の使い方の説明です。

AdminerはWordPressのデータベース管理プラグインの決定版!

データベース管理プラグインはAdminerがあれば他に必要ありません。なぜならDB管理ツールAdminerと同じものをプラグインとして提供しているからです。

WordPressのプラグイン WP-DBMANAGERを使って PHP、CakePHP、baserCMSなどで作った Webサービスのデータベースも自動バックアップ

WP-DBMANAGERを使って WordPress以外の PHP、CakePHP、baserCMSなどで作った Webサービスのデータベースも自動バックアップする方法を解説。

WordPress 画面が真っ白になる不具合があった場合の対応の一つ

WordPressで画面が真っ白になる不具合があった場合の対応方法の説明です。PHPでエラーが起こっている場合がほとんどですがその対処方法です。

WordPressの不正ログインを Force email loginで回避

WordPressのセキュリティ強化に Force email loginを使う理由と設定方法の解説をしています。

自サイト内のリンクをショートコードで指定する・アンカーリンク対応版

自サイト内の記事にショートコードで自動リンクを設定する関数のソースコードを提供。Post ID、slugで指定でき、アンカーリンクを設定する場合も対応。

Throws SPAM Awayでコメントスパム対策を完璧に。自動削除で運用の手間ゼロ

コメントスパム対策の決定版ともいうべきプラグイン。簡単な設定で自動的にスパムコメントを削除してくれるので煩わしい作業はゼロに。細かな設定も可能。

WP Customer ReviewsでWordPressにオリジナルの口コミサイトを構築

口コミサイトを構築するためのプラグイン。独自フォームによるレビュー、評価点を投稿でき、入力項目の追加もできます。

SyntaxHighlighterの設定、カスタマイズ方法を解説。Crayonから乗換え、高速化にも最適

SyntaxHighlighter 3の設置方法、各機能の設定方法、オプション、デフォルト設定の変更方法を解説。Crayonから乗り替えるならこれしかない。