WordPressの新しいプラグインやテーマを試したい場合、PCにXAMPPをインストールしてローカル環境でWordpressの実行環境を構築する方法があります。しかし、この環境で WordPressの更新やプラグインの追加 ができない場合があります。そこで、今回、この問題を解決する方法を紹介したいと思います。
はじめに
WordPressやプラグインが更新された場合、ネット上のファイルを更新すると場合によっては不具合が生じて閲覧できなくなる可能性があります。
過去に、Slimstatの更新によって、Slimstat自身が機能しなかったり、サイトにアクセスできなくなるという問題が生じました。
このような問題を避けるために、PCにXAMPPとBitnami WordPressをインストールし、ローカル環境でWordpressやプラグインを更新した後の動作確認ができるようしています。
また、Eclipseをインストールして、Wordpressのちょっとしたデバッグも出来るようにしています。
ところが、XAMPPとBitnami WordPressで構築した環境で、Wordpressの更新やプラグインの追加が出来なくなる場合があります。
この場合、Wordpressの更新を行うには、更新ファイルをダウンロードして手動で上書きをするという対処法があります。
プラグインの場合は追加したいプラグインのファイルをダウンロードして、手動でアップロードする方法があります。
しかし、Wordpressを上書きして更新する場合、ダウンロードしたファイルをインストールする場所を間違えるととんでもないことになります。
また、プラグインの新規追加でプラグインを追加できないと、プラグインの検索が出来なかったり、何かと不便になります。
今までは、これらの操作を行う機会が少なかったので、特に問題とはしていませんでした。
しかし、開発環境をあちこちで構築していく中でこの作業を繰り返すのは大変な手間と時間が掛かります。
また、当施設の利用者さんがWordpressに興味を持ち、自分で運営を行っていくようになるとこの問題には必ず遭遇すると思います。
そこで、今後の事を考えて、これらの問題の解決に乗り出したところ、解決することが出来ました。
今回はこれらの問題の解決方法を自分の備忘録も兼ねて紹介したいと思います。
WordPressの更新やプラグインの追加 ができない
WordPressの更新やプラグインの追加が出来ない場合、解決方法が共通する場合があります。
そして、恐らく、Wordpressが更新できないことの方が問題としては大きいと思います。
そこで、まず、Wordpressの更新時に見られるエラーと解決方法を先に紹介します。
次に、上記の方法を試した後でもプラグインの新規追加で、プラグインの検索ができない場合のエラーと解決方法を紹介します。
WordPressの更新エラー
XAMPPとBitnami WordPressのローカル環境でWordpressの更新を行った際、幾つかのエラーに遭遇しました。
そこで、遭遇したエラーの順に、表示されたメッセージとそのメッセージに対する解決方法を順に説明していきます。
最大実行時間
WordPressの更新で最初に表示されたメッセージは以下の内容でした。
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\apps\wordpress\htdocs\wp-includes\Requests\Transport\cURL.php on line 463
内容としては、最大実行時間の30秒を過ぎたという意味です。
このエラーメッセージに対処する方法は以下のサイトを参考にしました。
上記サイトを見ると、表示されるファイルのパスや行数は一定ではなく、あまり重要ではないようです。
この最大実行時間の変更は、XAMPP Control Panelから行います。
XAMPP Control Panelを起動し、「Apache」の「Config」ボタンをクリックし、「PHP(php.ini)」をクリックします。
すると、メモ帳が起動してphp.iniが表示されるので、「ctrl+F」キーで「検索」ウィンドウを起動します。
次に、「検索」ウィンドウの「検索する文字列」に”max_execution_time”を入力し、”max_execution_time”を検索します。
この”max_execution_time”が”30″の場合、この値を大きく設定しましょう。
どの程度が妥当かは分かりませんが、参考サイトでは”120″だったので、まず”120″に設定してみます。
それでもダメな場合は、1分(60)ずつ増やして様子を見るのも一つかと思います。
また、この値を”0″に設定した場合、処理が無制限に実行されるそうです。
しかし、この場合だと、処理が止まらなくなるそうなので、あまりお勧めは出来ないようです。
値を修正したら、php.iniを保存して閉じます。
修正を反映させるには、XAMPP Control Panelの「Apache」の横にある「Stop」ボタンをクリックします。
「Apache」の「Stop」ボタンが「Start」ボタンに切り替わるので、今度は「Start」ボタンをクリックします。
設定が反映されたかどうかは、「Apache」の「Admin」ボタン(赤枠)をクリックすると、既定のブラウザが起動してWelcome to XAMPPのページが表示されます。
すでに既定のブラウザを起動している場合はそのブラウザに表示されます。
次に、ページの右上にある「PHPinfo」(赤枠)をクリックします。
「PHPinfo」ページでは各設定の値を確認できるので、「ctrl+F」キーで既定のブラウザの「検索」ウィンドウを表示し、”max_execution_time”を入力して検索します。
今回は時間を1分ずつ増加させ、最大実行時間に関するエラーが表示されなくなるまで、最終的には”360″に設定しました。
ダウンロードの失敗
最大実行時間に関するエラーが表示されなくなって、次に表示されるようになったエラーがダウンロードに失敗に関するエラーでした。
ダウンロードに失敗しました。: cURL error 28: Operation timed out after 300000 milliseconds with 43856447930368000 out of 47074980457873408 bytes received
このエラーに関して検索してみると、次のサイトを見つけました。
cURLのタイムアウトの記述について探してみると、”/wp-admin/includes/file.php”にあったそうです。
参考サイトに倣って、関数download_urlのデフォルト値を300から3000に書き換えることにしました。
方法としては、メモ帳やEclipseで該当ファイルを開いて編集します。
それでも、Wordpressの更新時にエラーが表示されましたが、無事に更新を終えることが出来ました。
別の更新が進行中
上記二つの値のいずれかを変更してWordpressの更新を失敗した直後に、Wordpressの更新を実行すると「別の更新が進行中」というエラーメッセージが表示される場合があります。
このエラーメッセージについて調べてみると、以下のサイトを見つけました。
このエラーメッセージの解決方法は、二つあります。
- 再更新できるようになるまで15分待つ
- phpMyAdminのデータベースからcore_updater.lockを削除する
WordPressの更新時に特にエラーメッセージが表示されていない場合は、本当にダウンロードなどに時間が掛かっているので、この場合は15分間待つしかありません。
しかし、設定値を変更した後にWordpressの更新に失敗した場合、数値の変更を繰り返す必要があるので、15分も待っていられないと思います。
この場合は、phpMyAdminのデータベースからcore_updater.lockを消すことで、すぐにWordpressの更新が出来るようになります。
方法は、まず「最大実行時間」の変更と同様に、XAMPP Control Panelから「Welcome to XAMPP」ページを開きます。
データベースを操作する場合は、「phpMyAdmin」(図1の赤枠)をクリックします。
次に、phpMyAdminページが開かれるので、データベースを表示するために「データベース」ボタン(図2の赤枠)をクリックします。
今回はWordpressのデータベースを操作するので、”bitnami_wordpress”(図3の赤枠)をクリックします。
図1 | 図2 | 図3 |
すると、Bitnami WordPressの構造が表示されます。
今回削除する”core_updater.lock”は”wp_options”にあるので、構造から”wp_options”(図4の赤枠)を見つけ出してクリックします。
次に表示されるページで行フィルタ(図5の赤枠)に”core_updater.lock”を入力して削除します。
別の方法としては、「検索」タブ(図6の青枠)をクリックし、”option_name”の値(図6の赤枠)に”core_updater.lock”を入力して検索し、”core_updater.lock”があれば削除します。
図4 | 図5 | 図6 |
“core_updater.lock”を削除することで、Wordpressの即時更新が可能になります。
こうすることで、Wordpressの何かしらの値を変更したことによる更新失敗後の15分を待つことなく、すぐに値を変更して更新できるかどうかを試すことが出来るようになります。
プラグインの追加エラー
WordPressの更新以外に問題になるのがプラグインの追加エラーだと思います。
今回、このエラーが発生したのは、プラグインの新規追加でキーワード検索を行った時でした。
キーワード検索を行うと、しばらくして以下のメッセージが表示され、キーワードに関係するプラグインが何も表示されないという状態です。
不明なエラーが発生しました。WordPress.org またはこのサーバーの設定に何か問題が起きている可能性があります。問題が解決しない場合はサポートフォーラムに投稿してみてください。
WordPressでプラグインが更新できない場合の対処方法を調べてみると、以下の二つの方法を見つけることが出来ました。
- class-http.phpにある関数http_request_timeoutの値を変更する。
- wp-config.phpに”define(‘FS_METHOD’, ‘direct’);”を追加する。
まず、1の方法は以下のサイトを参考にしました。
class-http.phpは、Wordpressがインストールされているフォルダの”wp-includes”フォルダにあります。
class-http.phpの編集は、編集機能があるメモ帳かEclipseなどで行います。
編集機能のあるいずれかでclass-http.phpを開き、”http_request_timeout”を検索します。
すると、以下の記述が表示されます。
apply_filters( 'http_request_timeout', 5)
この値を、5から10に変更して保存します。
設定を反映させるには、上記で既述した方法のように、Apacheを再起動します。
次に、2の方法は以下のサイトを参考にしました。
この方法では、wp-config.phpに以下のコマンドを追記します。
define('FS_METHOD', 'direct');
こうすることで、FTPモードではなく、直接DLに切り替えるそうです。
ここで紹介したサイトも見ればよいと思いますが、上記のコマンドを追加した場合でもエラーが出る場合、パーミッションの設定を変更することで改善される場合があるようです。
ただ、ここで紹介している内容はWindowsのローカル環境で発生した問題なので、パーミッションの設定まで行う必要があるかどうかは分かりません。
Windowsのローカル環境で問題が発生した場合、ダウンロードしたファイルの書き込みができないことが原因として挙げられます。
このため、フォルダのセキュリティを変更する必要があるかもしれません。
最後に
今回、ローカル環境にインストールしたWordpressの更新やプラグインの新規追加でいくつかのエラーが発生しました。
これらのエラーを解決するために、Wordpressの更新失敗の原因とその対策、プラグインの追加でキーワード検索した場合のエラーとその対策についてまとめてみました。
プラグインの追加でキーワード検索した場合のエラーに関して、後日、”cURL error 28″について調べてみると、以下のサイトを見つけることが出来ました。
どうやら、Woocommerceがインストールされている環境だとこのような問題が起こるようです。
上記サイトの場合は、今回のようなローカル環境で発生した問題ではありませんが、契約しているサーバーのfirewallがWoocommerceの外部との通信をブロックして起きているようです。
ただ、この問題を別のローカル環境でも再現できるかというと、再現できませんでした。
Bitnami WordPressをインストールし、Woocommerceもインストールしたのですが、Wordpresの更新もプラグインのキーワード検索も問題なく実行できました。
ひょっとしたら、他のプラグインか、場合によっては使用しているテーマが関係しているかもしれません。
また時間があるときにテーマやプラグインで同様の問題を再現できるか調べてみたいと思います。
当施設の利用者さんがWordpressに挑戦したいという人が出た場合、ひょっとしたらこの問題に直面するかもしれないので、何かしらの参考になれば良いと思います。
コメント