Photo x Programming

写真家プログラマーKのIT効率化術

WordPressの移転、細かいハマリポイントまとめ

WordPressで運営しているブログをさくらインターネットからエックスサーバーに移転しました。

WordPressの移動は毎回ハマるので、ポイントをまとめておきます。

手順概要

手順は次のような流れです。

  1. 移転元サイトからwordpressフォルダをダウンロードする
  2. 移転元サイトでwordpressのデータベースをエクスポートする
  3. Step1でダウンロードしたものを移転先サイトにアップロードする
  4. 移転先サイトでデータベースを作成し、Step2の結果をインポートする
  5. Step4のデータベースの中身の文字列(URL)を移転元->移転先 置換する
  6. Step3でアップロードしたwp-config.phpのデータベースの設定をStep4で作成したデータベースに合わせる
  7. 動作確認する

なぜか毎回Step5を忘れてハマります。
手順を説明しているサイトがたくさんありますが、Step5を書いていないサイトもあるので注意が必要です。

概要は、エックスサーバー マニュアル | レンタルサーバー 高速・高機能・高安定性の【エックスサーバー】 などを参考にしてください。

それぞれのステップの細かいハマリポイントをチェックしていきましょう。

細かいハマリポイント

1. 移転元サイトからwordpressフォルダをダウンロードする

特にハマリポイントはありません。

2. 移転元サイトでwordpressのデータベースをエクスポートする

phpMyAdminの画面左側に表示されるテーブル名を選択してからエクスポートするようにしましょう。

テーブル名を選択せずにエクスポートしたものをStep4でインポートしようとすると

Error SQL query:

— — Database: information_schema — CREATE DATABASE information_schema DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

MySQL said: Documentation

1044 – Access denied for user ‘<ユーザ名>’@<サーバ名>’ to database ‘information_schema’

というエラーになります。

また、[Options] – [Structure] – [Add DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT] にチェックを入れます。

3. Step1でダウンロードしたものを移転先サイトにアップロードする

エックスサーバーはマルチドメイン対応しています。

ドメインを追加する場合は、ドメインを追加した後に自動で作られる “<ドメイン名>/public_html” フォルダにファイルをアップロードします。

また、デフォルトでindex.htmlが置かれていますが、それは削除しておきます。

4. 移転先サイトでデータベースを作成し、Step2の結果をインポートする

データベースを作成する時に、文字コードにUTF-8を指定するのを忘れないように。

5. Step4のデータベースの中身の文字列(URL)を移転元->移転先 置換する

ここが一番のハマリポイントです。

データベースの文字列置換は、単純に置換してもプラグインがうまく動かない場合があるので、

WordPress Serialized PHP Search Replace Tool | Interconnect IT – WordPress Consultants, Web Development and Web Design ツールを使うのが正解。

ツールを “<ドメイン名>/public_html/” に解凍し、”http://<ドメイン名>/Search-Replace-DB-master/” にアクセスすると、ツールの画面になります。

replace “<移転元URL>” with “<移転先URL>”

という感じで入力します。

“<移転元URL>” には、Wordpress管理画面の [設定] – [一般] – [WordPress アドレス (URL)] のURLを入力します。

[dry run] して問題なさそうなら [live run] で実際に置換しましょう。

6. Step3でアップロードしたwp-config.phpのデータベースの設定をStep4で作成したデータベースに合わせる

特にハマリポイントはありません。
下記の部分を編集します。

/** WordPress のためのデータベース名 */ define(‘DB_NAME’, ‘example_wp’); /** MySQL データベースのユーザー名 */ define(‘DB_USER’, ‘example_user’); /** MySQL データベースのパスワード */ define(‘DB_PASSWORD’, ‘***********’); /** MySQL のホスト名 */ define(‘DB_HOST’, ‘mysql○○.xserver.jp’);

7. 動作確認する

トップページだけでなく、各エントリーやWordpressの管理画面にも正しくアクセスできるか、確認します。

画像やアイコンも問題無く表示されているでしょうか?

WordPress管理画面の [設定] – [一般] – [WordPress アドレス (URL)] と [サイトアドレス (URL)] が新しいURLになっていないようなら、修正しておきます。

ここから下は、Wordpressの管理ページログイン画面のURLにredirectの記述があったため問題が発生したかも(Lastpass chrome extensionのせい?)。
あなたの場合は不要かも。。

もしそれで移転先の管理画面にログインできなくなったら、wp-login.phpを次のように編集します(update_optionの2行を追加)。

require( dirname(__FILE__) . ‘/wp-load.php’ );

update_option(‘siteurl’, ‘<移転先URL>’); update_option(‘home’, ‘<移転先URL>’);

再度ログインを試してログインできるようになったら、追記部分は削除します。

ここまで。。

まとめ

WordPressの移転方法については、検索するとたくさん見つかりますが、内容はサイトによってバラバラです。

自分で試しながら確実な手順をメモしておくのが、将来の時間の節約になります。

Facebookでコメントする