WordPressのサーバーお引越しをしました。
運営していたWebサイトの売却が決定したので、売却先の契約しているサーバーに移行する必要がありました。
普段、サーバーサイドの操作は避けてきたので、レンタルサーバーの移行にも苦戦してしまいました(苦笑)
備忘録的に残しておきます。
引越しの流れ
1) 既存のレンタルサーバーからデータをエクスポートする
2) 既存のデータベースからデータをエクスポートする
3) 移行先のデータベースにデータをインポートする
4) 移行先のレンタルサーバーにデータをインポートする
ざっと、この流れです。
All-in One WP MigrationというWordPress移行をめちゃくちゃ簡単にしてくれるプラグインがあるみたいですが、今回は記事数が200を超えており、GUIだけでの作業では無理があるかなと思い、断念しました。
既存のレンタルサーバーからデータをエクスポート
データのエクスポートは、レンタルサーバーのファイルマネージャーや、WordPress管理画面からもできるみたいですが、普段よりCyberDuckで操作しているので、今回も普通にCyberDuckからローカルにダウンロードしてきました。
既存のデータベースからデータをエクスポート
データベースはレンタルサーバーに入っているphpmyadminの管理画面からログインしてエクスポートしました。
移行先のデータベースにデータをインポート
当たり前ですが、まず移行先にデータベースを新規作成する必要があります。
この時、作成する際に下記の情報は書き留めておいてください。
① データベース名
② データベースユーザー名
③ データベース接続パスワード
④ データベースホスト名
移行先のレンタルサーバーにデータをインポート
作成したデータベース先に、既存のレンタルサーバーからインポートしてきたデータベースをインポートしていきます。サイズが大きすぎてか、途中でエラーが起こり、アップロードを中断してしまうようなこともありましたが、何度かやっているうちに全部入りました。
「wp-config.php」のファイルを編集
/** WordPress のためのデータベース名 */
define('DB_NAME', '①データベース名');
/** MySQL データベースのユーザー名 */
define('DB_USER', '②データベースユーザー名');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', '③データベース接続パスワード');
/** MySQL のホスト名 */
define('DB_HOST', '④データベースホスト名');
ルートディレクトリにある「wp-config.php」を移行先で作成したデータベースの内容に合わせていきます。
トラブルシューティング
今回見舞われてしまったのが下記の3つでした。
データベース接続確立エラー
エラー文もなく、ただこれだけ突きつけられると凹みます。
先ほど、データベースの内容を更新した「wp-config.php」に下記のコードを加えてあげると、どこがエラーになっているかが分かります。
define( 'WP_DEBUG', true );
自分の場合は、ファイルが全部きちんとアップロードされていなかったみたいでした。
トップページ以外にいけない
なぜか、トップページ以外を見ようとすると「404」になりました。
WordPressの管理サイト > 設定 から、何も触らず「変更を保存」をすると直りました。
table_prefixを更新
データベースの接頭尾を既存のデータベースに合わせてあげる必要があります。
作成したデータベースは「wp_」となっていましたが、既存のデータベースは「wp37cac6」となっていて、インポートしても一つも記事が表示されませんでした。「wp-config.php」の下記を更新されば直りました。
$table_prefix = 'wp37cac6';