このブログはレンタルサーバー上でWordPressを使って動作しています。
このWordPress、暫く更新をサボっていて管理画面には新バージョンに更新せよという旨のボタンが出たままだったので、そろそろやろうと思い立ちました。
正常であれば管理画面上の更新ボタンを押せば僅かな時間で終了します。が、初期の頃このボタンを押したら立ち上がらなくなって苦労した事があるんですよね。でもそれ以後の更新は大体すんなりと終わっていたんです。
しかし今回またハマッたので備忘録として書いておきます。
更新開始
まず最低限のバックアップを取って管理画面の「更新」ボタンをポチッと・・・
すると下記の様なダウンロード中を示す表示が出て・・・そのまま止まってしまい変化ありません(´;ω;`)
更新を失敗すると、その後やり直しても15分程度は「別の更新が現在進行中です」というメッセージが出て再実行できなくなります。なので時間を待って何度か試しましたが同じでした。
なおこの時点ではブラウザーからアクセスすれば普通にブログが見えていたので、後戻りできない状態になる前には止まってくれている様です。
PHPのタイムアウト設定を増やしてみる。
色々ググってみるとPHPのタイムアウト時間設定を増やせば良いという情報がありました。PHPとはWebサーバー上で動作するプログラミング言語で、WordPressもPHPで書かれています。
タイムアウト時間等の初期設定はレンタルサーバー会社が管理していますが、自分のディレクトリにphp.iniファイルを置けば上書きできる仕様になっています。そこで下の様な1行だけのphp.iniファイルを作ってFTPでアップロードしました(元々90秒なのを5分に伸ばす意味です)。
max_execution_time = 300
念のため反映できている事を確認(簡単なPHPスクリプトを作り、その中でphpinfo()関数を実行する)した上で再度更新にトライしましたが・・・まだダメでした。
PHPのメモリーリミット設定を増やしたところ・・・
更に調べていくとPHPのメモリー上限に引っかかる場合もあるとの事。そこで先のファイルに次の行も加えてみました(こちらは128Mを256Mに増やしています)。
memory_limit = 256M
これでまたトライ・・・ダメですねぇ。と思ってもう一度実行をしたら先に進みました!!
(この変更が効いたのかどうかは不明)
・・・が、しばらく見ていると、今度は下記の所まで進んで止まってしまいました・・ううっ!!
今回はブラウザーからブログにアクセスしてもメンテナンス中のままになっています。これはヤバい。
プラグインが悪さしているらしい
何度かやっているとメンテナンス中の表示も出ずに何やらエラー表示が出ててくる様になりました。
うーんんん、ヤバイです(汗)。
いや、落ち着け。。。こういう時WordPressから自分宛にメールが届く様になっています。そのメールを開くとプラグインのGutenbergが悪さをしているとの記載が。またこのメールにはリカバリーモードで管理画面にログインする為のリンクも書かれています。
そこでリカバリーモードのリンクを押してみると、やはりGutenbergがダメというメッセージが表示され、管理画面には入れません。よってこのプラグインを止める必要がありますが管理画面が開けないと普通の方法でプラグインの無効化ができません。
因みにGutenbergというプラグインはブログを編集する時のエディターで普段から使っているものです。
FTPを使ってGutenbergプラグインを無効化して復活
そこでまたググります。するとFTPでプラグインを停止させる方法を書かれたサイトがありました(感謝!!)→https://webst8.com/blog/wordpress-plugin-off/
これによると「blogアドレス/wp-content/plugins/プラグイン名」というディレクトリの名前を変更すれば無効化できる様でなので、その通りにして無効化したところリカバリーモードで管理画面に入る事が出来ました。この時点でブラウザーからのブログアクセスも復活しています。
あとはリカバリーモードを解除し、Gutenbergも再インストールして正常に戻ったかに見えましたが、本ページを書いているところで画像をアップロードできなくなっている事に気づきました。一応バージョンは6.6.1に変っていますが、やっぱり何か変ですね。
更新途中で止まって中途半端になっているのかもしれません。そこで管理画面のUpdetsメニューにある「バージョン6.6.1-jaを再インストール」を押してみたところ、今度は一発で再インストールが終わり、画像アップロードも可能となって現在に至っています。
なぜこうなった?
今回なぜハマッたのか不明点が多いです。まずダウンロード中に停止していた件はPHPのタイムアウト時間又はメモリー上限が影響していたのでしょうか?
またプラグインGutenbergが悪さをしていたのは何故なのか?更新直前に全てのプラグインを最新化したつもりだったのですが復旧時には更に新しいバージョンがあったので新しい方を入れました。WordPressのバージョンに合わせてGutenbergもアップデートが必要という事なのかな?
何はともあれ現時点は正常に動作している様です。ざっと1~2時間程度ブログが停止していました。