前回まではWordPressで構築したこのサイトをServersMan@VPSからお名前.com VPSへ移転する準備をしてきました。
今回からはいよいよ引越し実施編です。実はこの記事は移転先で書いています。実に長い道のりでした。
全体の手順
WordPressの移転の手順をざっとまとめると次のようになります。
- 移転元: WordPress関係のファイルのバックアップ
- WordPressの設定ファイル
- プラグイン
- テーマ
- アップロードしたファイル
- 移転元: WordPressのデータベース のバックアップ
- 移転元: Webサーバの設定ファイルのバックアップ
- 移転先: WordPress関係のファイルの復元
- 移転先: WordPressのデータベースのデータベースの復元
- 移転先: Webサーバの設定ファイルの復元
- 移転先: 動作確認
- DNSの書き換え
移転元・移転先とあるのはそれぞれの作業を行うサーバを示しています。それぞれのステップを紹介していきます。なお、すべての作業はroot権限で行っているとしてください。
今回は1~6までを紹介します。
移転元: WordPress関係のファイルのバックアップ
WordPressの移転なので当然ながらWordPressのファイルを持っていかなければいけません。しかし、移転先でもWordPressパッケージをインストールしているのですべてのファイルを持っていくわけではありません。
バックアップが必要なのは下記の5種類です。
- WordPressの設定ファイル
- プラグイン
- テーマ
- アップロードしたファイル
- データベース
WordPressの設定ファイル
このファイルはDebianの場合は/etc/wordpress以下にありますので、/etc/wordpress以下を丸ごとバックアップすればOKです。
tarコマンドで固めて、そのファイルをWinSCP等で取得すればよいでしょう。
tar cfvz wordpress.tar.gz /etc/wordpress/
プラグイン
バックアップをしなくても移転先で改めてプラグインをインストーすればよいのですが、移転直後に同じ環境を用使えるようにするためにバックアップしておきます。
WordPressのプラグインファイルはDebianの場合は/var/lib/wordpress/wp-content/plugins以下にありますので、これを丸ごとバックアップします。バックアップしたファイルはWinSCP等で作業用のPCに転送します。
tar cfvz plugins.tar.gz /var/lib/wordpress/wp-content/plugins/
テーマ
プラグインと同様にバックアップして作業用のPCに転送します。ファイルの場所はDebianの場合は/var/lib/wordpress/wp-content/themes/です。
tar cfvz plugins.tar.gz /var/lib/wordpress/wp-content/themes/
アップロードしたファイル
これもプラグインと同様にバックアップして作業用のPCに転送します。ただし、サイトの状況によってはかなりファイルが多い場合もありますので時間がかかります。
アップロードしたファイルが格納されている場所はDebianのデフォルトだと/srv/wwwのようです。私の場合は「/www/サイト名」に格納しています。これをtarで固めてバックアップします。
tar cfvz uploads.tar.gz /www/サイト名/
移転元: WordPressのデータベース のバックアップ
データベースをバックアップする方法はいくつかありますが、私はWordPressのBackWPupというプラグインを使いました。
このプラグインではデータベースをバックアップするというジョブ(DBバックアップ)が作成できるので、それを作成して実行すればデータベースをバックアップすることができます。バックアップしたファイルはWordPressのダッシュボードのBackWPupの画面からダウンロードすることができます。
移転前のサーバでもphpmyadminが使える場合は、phpmyadminでWordPressのデータベースをエクスポートしてもよいと思います。
この場合はphpmyadminにアクセスして、左側のデータベース一覧から移転したいWordPressのデータベースを選択します(データベース名はWordPressの設定ファイルのDB_NAMEを探すと書いてあります)。データベースを選択したら画面上部の「エクスポート」を選びます。あとはエクスポート方法で「詳細」に、圧縮を「ZIP形式」に変更して画面下部の実行を押すとデータベースをZIPファイルとしてダウンロードすることができます。
下記はphpmyadminの画面で、操作する・変更する必要があるところを赤で囲ってあります。
移転元: Webサーバの設定ファイルのバックアップ
次にWebサーバの設定ファイルをバックアップします。
WebサーバがNginxの場合は/etc/nginxに設定ファイルが格納されています。サイトを丸ごと移転する場合はこのディレクトリを丸ごとバックアップすればよいでしょう。
複数のWebサイトを構築していて移転するのが特定のWordPressサイトの場合は/etc/nginx/sites-availableにあるWordPressサイトに対応したファイルをバックアップします。この場合はバックアップするファイルを中身を確認して「include」という行があったらincludeしているファイルもバックアップする必要があります。
まるごとバックアップする場合は次のようの行えばよいでしょう。
tar cfvz nginx.tar.gz /etc/nginx/
移転先: WordPress関係のファイルの復元
ここからは移転先での作業になります。
まずファイルを復元する前に、WordPressをインストールしたときにできたファイルを移動させておきます。
mv /etc/wordpress /etc/wordpress.back
あとはバックアップした下記ファイル4点をWinSCP等で移転先にコピーして、tarコマンドで展開していきます。
- WordPressの設定ファイル
- プラグイン
- テーマ
- アップロードしたファイル
それぞれルートディレクトリに移動してから展開すればOKです。
cd / tar xfvz バックアップファイル
移転先: WordPressのデータベースの復元
WordPressのデータベースを復元する際には、まず入れ元のなる空のデータベースのを作らなければなりません。また、WordPress用のデータベースユーザも必要です。
この作業はphpmyadminを使うのが簡単です。移転先でphpmyadminを使う設定は前回の記事を参照してください。
空データベースとデータベースユーザの作成
まず/etc/wordpressに復元したWordPressの設定ファイルを見てデータベース名、ユーザ名、パスワードを確認します。Debianの場合は「/etc/wordpress/confing-サイトのURL.php」というファイルがあるはずです。
このファイルの中に次のようにデータベースの設定をしている行があります。多くの場合、データベース名とユーザ名は同じではないかと思います。
define('DB_NAME', 'データベース名'); define('DB_USER', 'ユーザ名'); define('DB_PASSWORD', 'パスワード'); define('DB_HOST', 'localhost');
次に移転先のphpmyadminにアクセスしてrootでログインします。
データベース名とユーザ名が同一の場合は、ユーザ登録画面でデータベースの作成とユーザの作成を次のように一括して行うことができます。ポイントは「同名のデータベースを作成しすべての特権を与える」を選ぶ点です。
データベース名ととユーザ名が異なる場合は、データベースとユーザをそれぞれ別に作成し、そのユーザにWordPressのデータベースへの特権を付与する必要があります。
データの復元
データの復元に関してもphpmyadminでWordPressのデータベース(先ほど作った空データベース)を選択して、画面上部の「インポート」を選択することによって行います。
「ファイルを選択」ボタンで、インポートしたいデータベースファイル(バックアップしたデータベースファイル)を選択して「実行」を押すとデータが復元されます。
なお、私の場合はデータベースファイルが大きすぎてエラーになってしまいました。調べたところ、/etc/php5/fpm/php.iniの「upload_max_filesize」が「2M」となっていました。これを「20M」に変更し、php5-fpmを再起動したところアップロードに成功するようになりました。php5-fpmの再起動は次のコマンドです。
service php5-fpm restart
phpmyadminが使えない場合
念のために移転先でphpmyadminが使えない場合の復元方法について記載しておきます。ただし、これは私は検証しておりません。
空データベースとデータベースユーザの作成
phpmyadminが使えない環境では次のようにコマンドラインで空データベースとユーザを作成します。
mysql -u root -p Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 103 Server version: 10.0.16-MariaDB-1 (Debian) Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> CREATE DATABASE データベース名; Query OK, 1 row affected (0.02 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON データベース名.* TO "ユーザ名"@"localhost" IDENTIFIED BY "パスワード"; Query OK, 0 rows affected (0.10 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.02 sec) MariaDB [(none)]> EXIT Bye
データの復元
コマンドラインでデータベースを復元するためには、まずデータベースのバックアップファイルを展開してデータベースファイル(拡張子がsqlのファイル)を取り出して、移転先に転送します。
そしてそのファイルをmysqlコマンドにそのまま投入します。次のようにすれば良いはずです。
mysql -u 作成したユーザ名 作成したデータベース名 -p < データベースファイル
パスワードを聞かれるのでデータベースユーザを作成したとに指定したパスワードを入力するとデータベースのインポートが実行されます。
移転先: Webサーバの設定ファイルの復元
Webサーバの設定ファイルは単に展開すればOKです。
まずファイルを復元する前に、Webサーバをインストールしたときにできたファイルを移動してから、バックアップしたファイルを展開します。
mv /etc/nginx /etc/nginx.back cd / tar xfvz nginx.tgz
Webサーバの再起動は後ほど行いますので、ここでは行いません。
まとめ
今回はWordPressの引っ越し作業の本番作業として、WordPressのファイル・WordPressのデータベース・Webサーバの設定ファイルを引越し先に持っていきました。
これで完了と行きたいところですが、この状態でWebサーバを起動しても移転先にアクセスしても移転前のサイトに転送されてしまいます。
これを避けて動作確認をするためにはちょっとした作業が必要になります。この作業については次回紹介したいと思います。
コメント