自宅サーバでwordPress環境が壊れてしまった時の回復方法

以前の記事(自宅サーバのサイトに重大なエラーが発生!10日かけてとか復旧できた!汗)でお話しましたが、実際に行った対策の詳細を報告します。

1.WordPressが壊れた

どうやら、wordpress 環境が壊れてしまったようですので、これを回復したいと思います。

回復方法を捜していたんですが、60爺は、このサイトを参考にしました。

WordPressが壊れてしまった時の回復方法

このサイトで示された手順を参考に実施したんですが、環境設定を一部独自に実施している部分があります。

それでは、いざ、始めてみましょう。

2.wordpress回復手順

wordpress の回復手順は次の通りです。

(1) WordPressインストール

ここで注意するのは、置き換える wordpress と同じバージョンの wordpress をインストールしなければならないということです。

参考サイトにありますが、異なるバージョンですと、データベースの構造等合わない場合があるからだそうです。

バージョンの確認は、/wp-include/version.php の $wp_version = の後にある数字で確認できます。

60爺のそれは、’5.4.4′;となっていましたので、バージョンは 5.4.4 ですね。

まずは公式サイトよりwgetで圧縮ファイルをダウンロードします

$ cd /usr/local/src
$ wget https://ja.wordpress.org/wordpress-5.4.4-ja.tar.gz

圧縮ファイルを解凍します。

$ cd /usr/local/src
$ tar xvzf wordpress-5.4.4-ja.tar.gz

ダウンロードした圧縮ファイルを削除してから、WEBディレクトリ(/var/www/html)に移動します。

$ rm -f wordpress-4.7.3-ja.tar.gz
$ mv wordpress /var/www/html
$ rm -Rf wordpress

(2) データベースリストア

最新状態のバックアップデータからデータベースをリストアします。こうすることで、以前投入したデータを復元します。

(3) 画像ファイル復元

画像は、wordpress/wp-content/uploads に入っていますので、旧 wordpress から、新 wordpress へコピーします。

$ cp 旧のwordpress/wp-content/uploads 新のwordpress/wp-content/uploads

(4) wp-config.php コピー

これが重要です。旧の wordpress 直下にある wp-config.php を新の wordpress 直下にコピーします。

これにより、旧の環境で使用していたデータベース等の内容を新しい環境で見えるようになります。

$ cp 旧のwordpress/wp-config.php 新のwordpress/wp-config.php

(5) テーマファイルアップロードと有効化

wordpress へログインし、外観>テーマへ行き、使用するテーマのファイルをアップロードします。

アップロード後、有効化しましょう。

(6) プラグインインストール

プラグイン>インストール済プラグインヘ行き、以前使用していたプラグインをインストールして有効化しましょう。

プラグインで必要な設定があれば、その設定も実施してください。

3.内容確認

さて、さきほど環境を設定した wordpress の内容が正しく動作するか検証したいと思います。

いきなり公開サイトに環境設定してしまうと、何か問題があった場合、サイトが見えなくなってしまいます。

60爺は、現在、Apache の VirtualHost ※を採用しています。そのため、wordpress の環境は、/var/www/wordpress 下に設定しています。

そこで、上述の回復手順では、新しい環境を /var/www/html に設定して、このローカルな環境で設定内容の確認を行います。

ここに置いた環境を確認しながら問題が解決できたかどうか見ていきましょう。

※1 台のマシン上で (www.company.comwww2.company.com のような) 二つ以上のウェブサイトを扱う運用方法のことを指します。

(1) 事前準備

事前準備として、wp-config.php に次の設定が必要です

define('WP_HOME','https://192.168.XXX.YYY/wordpress');
define('WP_SITEURL','https://192.168.XXX.YYY/wordpress');

192.168.XXX.YYY は設定した環境のIPアドレスです。

これを、以下の行の下に追加してください。

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

この設定をすることで、今回設定した wordpress の内容をブラウザ上に表示することが出来ます。

(2) wordpress内容確認

ブラウザから以下の内容を打ち込んで Enter を入力してください。

192.168.XXX.YYY/wordpress/wp-login.php

wordpress のログイン画面が表示されますので、IDとパスワードを打ち込んでください。

管理画面が表示されるので、wordpress で発生していた問題(自宅サーバのサイトに重大なエラーが発生!10日かけて何とか復旧できた!汗)が解消されているか確認します。

以下の4点でした。

  • 画像を登録できない
  • メディアが表示できない
  • テーマのカスタマイズが出来ない
  • テーマの編集ができない

60爺が実施したところ、2番目のメディア画面の障害が解消されていませんでした。

これは、wp-config.php に以下の訂正を加えて解消しました。

 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'JAzS<,ZJK[*^Fg9E3_O#mgvgTE7rdqg&?jW*0_Ln8YZDeZ0$%[>70j$Hkw0d-Tn/');
define('SECURE_AUTH_KEY',  '8u8r1Cg[Indi#Z-` #ZmSE3:sb{y*SE:x8zmLkHr,32+&gIRs%w2a}5&)f&Oq/6x');
define('LOGGED_IN_KEY',    '7flE~u|Azlw_!g_w&#jKkabc*U]wi6K|:Xu=l!STGC-J[qNKp%*d|]uV?J7| n:4');
define('NONCE_KEY',        '{Tqp+a[uE2iv#12Q,8:[0knN<ATlVA}dD_QZBBfawWhMsb.stQY>:RjDjGk.cdu!');
define('AUTH_SALT',        '$s@-q,u$9D)+[c+PxWFo4VIG@/xQt=gv^z:yZm/GpEJ8e5<&3~!LW:7OM6Lg*i0N');
define('SECURE_AUTH_SALT', '0.fssTinC!YtZ^+FvlS s4h@!N@C~$eFB{!;ii.BNgd)AYgYb9mY,U[?cD8%_{0y');
define('LOGGED_IN_SALT',   'leL2.eOhOJ<}Xe%[pyay*NYG-hoTx9cuwtdw6L[`zu5kM Cs2LlvlQc4t_XKz;Lu');
define('NONCE_SALT',       'a}fyBjon^FL96T&Q/D=7^~X{w!JLBGXxi0GH~M+JZ{Pfa^x4X4)$gcUla5$5e^0p');
define('CONCATENATE_SCRIPTS', false );

上記最終行(下記に再掲)を追加したところ、メディアファイルが表示されるようになりました!

define('CONCATENATE_SCRIPTS', false );

メディア画面が表示されたことで、1番目のエラーも解消し画像登録ができるようになりました。

3,4番目の問題も難なく解消しており、テーマの編集も可能になりましたし、テーマのカスタマイズも出来るようになりました。

後は、公開サイトの wordpress 環境を削除後、この wordpress 環境をコピーすれば対応完了です。

コピー後、chown を実施して、ファイルの所有者やグループを変更してください。

これで、今回発生した記事更新不能状態は解消されました。

さっぱり分からないところから、いろいろと足掻いて何とかなりました。

本当に良かったです。