故障でハードウェア交換を行った Webサーバーですが、WordPress を 5.2 に上げた後、なぜかプラグインなどを更新が出来なくなってしまいました。実際には 5.2に上げたためかどうかわからないのですが、5.2には上がって、その後でプラグインを上げようとしてからトラブルが発生しました。5.2への更新とプラグインの更新は別の日。
Classic Editor を更新しようとしたら、画面が切り替わった後に無反応・・・・・・
以下の状態で無応答になりました。
プラグインを更新
更新プロセスを開始しています。サーバーによっては少し時間がかかるかもしれません。しばらくお待ちください。
メンテナンスモードを有効にします…
プラグインの更新: Classic Editor (1/1)
.maintenance を消して、もう一度更新ページに戻って、プラグインをアップデートしようとしても、同じ結末。
WordPress 5.2へのアップデートが失敗した?
仕方ないので、wordpress 自体を再インストールしてみることにしましたが、これも失敗。
WordPress を更新
https://downloads.wordpress.org/release/ja/wordpress-5.2.zip から更新をダウンロード中…
Fatal error: Call to undefined function hash_algos() in /……./wp-admin/includes/file.php on line 1166
サイトで技術的な問題が発生しています。サイト管理者のメールを確認して指示に従ってください。
私が管理者なんですけど・・・・と思いながら内容を確認。
hash_algos() と出ているので、まさかまさかと思いながら、php-hashモジュールがインストールされているかどうか確認してみると・・・・・なぜか入っていない。
入っていないというよりもメンテナンスの時に消えてしまったような感じ。このサーバーは、php7系じゃなく、まだphp56系なので、別のphp56系サーバーの php56-hashモジュールをコピー&インストールしました。
この後で、Classic-Editor プラグインの更新は成功。
念のために、WordPress 5.2 を入れ直そうとしたら、今度は「別の更新が現在進行中です。」と出て、またまた更新に失敗。
WordPress を更新
別の更新が現在進行中です。
.maintenance は存在していないので、何をチェックすればいいのか初めてお目に掛かる症状です。
検索エンジンでキーワード検索してみると、バックグランドでMySQLデータベースが更新されている可能性があるとのこと。
対策は・・・・・・15分待て だって。本当かいな?
または、データベースの特定レコードをsql命令を使って直接消すこと。
sqlデータベースをいじるよりも、まずは待ってみる方が良さそうです。
しばらく待ってみたら、本当に問題解決してしまいました。
WordPress 5.2 への更新作業は、過去何度も同じ作業を行っているので何も事前確認していませんでした。ですから、何がどう絡んでこういう状況になったのかはわかりません。一応 WordPress 5.2 への更新中にいろいろ事故が起きたと思っておきますが、私の日常メンテナンス時にphpモジュールが消えてしまった可能性も捨てきれません。
でもまあ、解決したので、エラーメッセージと画面の様子をメモして終わりとします。