参考にしたサイト
ローカル環境(localhost)に作ったWordPressのサイトをレンタルサーバーに移行する方法をいろいろ調べてみたところ、ここのサイトに書かれた方法が一番わかりやすかった。
http://webcre-archive.com/2012/10/04/wordpress-db-url-replace/
ここで使っている「Search Replace DB」というツール、2016年6月現在UIが多少異なっている。
というわけでその辺の変更点含めメモ。
ドメインを書き換える
WordPressはテーブル内にドメイン名を持っており、移行先に合わせて修正する必要がある。
ただし、エクスポートしたSQL文をメモ帳で開き一括置換するだけでは問題がある。
シリアル化されたデータは「文字数:文字列」という形式のため文字数も変更する必要がある。
例:
hostname:9:localhost → hostname:11:example.com
img:32:http://localhost/sample/img1.jpg → img:34:http://example.com/sample/img1.jpg
一つ一つ確認しながら修正するのは時間がかかるため、Search Replace DBというツールを使った。
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
移行手順
- ローカル環境でMySQLのデータをエクスポートする。
- レンタルサーバーでMySQLのデータベースを新規作成し、上記のデータをインポートする。
- ローカル環境のWordPressのファイルをレンタルサーバーにアップロードする。
- wp-config.phpを開き、データベース接続に関する記述を修正する。
define('DB_NAME', 'xxxxx');
define('DB_USER', 'xxxxx');
define('DB_PASSWORD', 'xxxxx');
define('DB_HOST', 'xxxxx');
自分の場合、マルチサイトを構築していたので以下の記述も修正した。
define('DOMAIN_CURRENT_SITE', 'xxxxx');
- "Search-Replace-DB-master.zip"をダウンロードし、解凍する。
- レンタルサーバーのWordPressをインストールしたフォルダの下に"Search-Replace-DB-master"フォルダごとアップロードする。
- ブラウザから「WordPressのURL/Search-Replace-DB-master/index.php」にアクセスするとツールが起動する。冒頭に紹介した記事ではウィザード形式になっているが、version3.1.0では1画面で完結する。
- 「search for」に「localhost」、「replace with」に「レンタルサーバーのURL」を入力し、「live run」をクリックするとWordPress内のデータが置換される。
- 更新が終了したら「delete me」ボタンをクリックするとSearch-Replace-DB-masterフォルダを削除してくれる。削除し忘れて他の人にデータベースを勝手にいじられてしまうことの無いように注意。