手動でXserverにWordPressのサイトを移転する際のつまづきポイント3つ

WordPressで作成したサイトをXserverに移転することにしたのですが、マニュアルに書いていないところもあり、つまづいたので情報をまとめておきます。手動で移行する場合はphpMyAdminのインストール、エクスポートしたデータベースの編集が必要でした。

WordPress簡単移行のマニュアル
https://www.xserver.ne.jp/manual/man_install_transfer_wp.php
簡単移行が使えないときの手動移行マニュアル
https://www.xserver.ne.jp/manual/man_install_transfer_wordpress.php

手動移行の3つのつまづきポイント

・移行元のサーバーにphpMyAdminをインストールしてデータベースの情報をエクスポート

・Xserverのサーバーにデータベース情報をインポートする時のエラー

・データベースのサイトURLの変更(必要な場合)

その前に:WordPress簡単移行は本当に使えませんか?

マルチサイトなど、一つのサーバに複数のサイトを入れてたりする場合にこのWordpress簡単移行が使えないことがあります。一方で入力ミスによりエラーが出ていることもあります。筆者の場合、3つ目のフィールドへの入力で’wordpress’のみを入力すべきところ、’wordpress/wp-login.php’と打ち込んでいたせいでWordpress簡単移行を使うことができませんでした。

簡単移行設定画面:正しくはwordpressのファイルが存在するパスを入れる。

手動でサイトを移行する時の手順

手動でサイトを移行する際にやることは大きく分けて下記の5つです。

  1. 移行元のWordpressのデータをダウンロード(バックアップ)する
  2. 移行元のデータベースファイルをエクスポートする
  3. Xserver上に新規DataBaseを作成し、移行元のデータベースファイルをインポート
  4. 移行元のWordpressのwp-config.phpのデータベース設定を変更して、移行元のデータを移行先にアップロード
  5. データベースのサイトURLの変更(必要な場合)

つまづき①:phpMyAdminでデータベースのエクスポート

推奨されているphpMyAdminをインストールして、データベースのエクスポートを行います。
こちらがphpMyAdminのメインページです。サーバーで使用しているphpのバージョンによって使えるphpMyAdminのバージョンも異なるので注意が必要です。phpのバージョンが7.2以上であれば最新のphpMyAdmin-5.2.0が使えますので、本記事ではphpMyAdmin-5.2.0のインストールを前提に進めていきます。

phpMyAdminのインストール手順

楽をするために、nginxの公開フォルダに移動して、直接公開フォルダでzipを解凍してインストールする作戦で行きます。sshでサーバーに移動した後、下記のような流れでインストールします。

#nginxの公開フォルダに移動(たいていの方はvar/www/htmlかと思います。)
$ cd /var/www/html

# 公式サイトのダウンロードリンクよりwgetでファイルをダウンロード
$ sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.zip

# ファイルを解凍
$ sudo unzip phpMyAdmin-5.2.0-all-languages.zip

# ここで、phpMyAdmin-5.2.0-all-languagesというフォルダができているので、このフォルダをphpMyAdminにリネームする
sudo mv phpMyAdmin-5.2.0-all-languages phpMyAdmin

# nginxのユーザーであるwww-dataに権限をつける
sudo chown -R www-data:www-data . /var/www/html/phpMyAdmin

ここまで完了したらブラウザからアクセスしてみます。

http://IPアドレスもしくはドメイン名/phpMyAdmin

このような画面が出れば成功です。
mySQLのIDとパスワードを入力するとログインできます。
このユーザー名とパスワードはphpでデータベースを作成するときに作ったユーザー名とパスワードであり、wordpressのユーザー名とパスワードとは異なるのでご注意ください。

無事ログインできるとこのような画面が出ます。

データベースのIDやパスワードを忘れた場合

データベースのパスワードは見れませんが、IDとパスワードが設定されているかは確認することができます。
sshで接続後、root権限でmySQLにログインします。その後下記コマンドでIDとパスワードのハッシュ値を見ることができます。

root権限でmySQLにログイン

$ sudo mysql -u root -p

パスワードとハッシュ値の取得

SELECT Host, User, authentication_string FROM mysql.user;

すると以下のように情報が出てきます。パスワードが設定されていない場合は下記のuser1のようにauthentication_stringが空欄になります。

+-----------+------------------+------------------------------------------------------------------------+
| Host      | User             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| %         | user1            |                                                                        |
| %         | wordpress        | $A$005$m1Dx@4%T/ _2b}vlinfBSz1ct.BVtfrnrwe27tMxs4AucRIScZZYDU7klQ0 |
| localhost | debian-sys-maint | $A$005$o~fX3y].t\8woa(/vr{O5vU4UeiFzbLD5ZQcqRBR5h6gPcGZqwOeP8XPki2C/. |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
+-----------+------------------+------------------------------------------------------------------------+

詳しくはこちらのページに書かれています

データベースのエクスポート

タブの中央あたりにエクスポートをクリックするとエクスポート設定画面に遷移します。
マニュアルには下の図のように注意書きがありましたが、エクスポートはデフォルト設定のままでOKでした。

localhost.sqlというファイルがダウンロードできれば完了です。

つまずき②:データベースのインポート

エクスポートしたlocalhost.sqlをそのままXserver側にインポートしようとしても下の図のようにエラーがでます。
これはエクスポートしたファイルに「エクスポートした名前のDataBaseがない場合に新たにエクスポートした名前のデータベースを作成してそれを用いる」という記述があることが原因です。

#1044 – Access denied for user [ユーザー名] @ `localhost` to database [移管元のデータベース名]というエラーがでます。

対策として、エクスポートしたlocalhost.sqlファイルを開き、下記2行をコメントアウトします。

# ファイルの上段にある下記2行を変更
CREATE DATABASE IF NOT EXISTS `[Dara Base 名]` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE `[Dara Base 名]` ;

# このようにハイフン2個とスペースでコメントアウトする。
-- CREATE DATABASE IF NOT EXISTS `[Dara Base 名]` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- USE `[Dara Base 名]` ;

変更後のファイルは正常にインポートできるはずです。

インポート成功例

つまずき③:データベースのURL変更

ここまで作業してきましたが、Xserverへの移行時にURLも変更するような場合、WordPressのデータベースのURLを変更しておかないと、古いURLにリダイレクトされます。データべースはPHPmyAdminから変更してしまいましょう。データベースの項目から、’phpmyadmin’を開きます。

 

ツリーからwp_optionsを選択し、’siteurl’と’home’のURLを新しいものと置き換えます。

以上、意外とつまずきポイントがありました。
本記事はここまでです。ご覧いただきありがとうございました。