ドメイン変更を伴うWordpressの引っ越しを行ったのでメモです。ドメインの変更を伴う場合はファイルを丸ごとコピーしても残念ながらうまくいきません。今回はWordpress 3.6を用いたサイトの引っ越しをしました。また、データベースの修正にはWordPress Serialized PHP Search Replace Tool を使いました。
- 移行先にWordpressのファイルを展開します。
同じバージョンで行います。できれば、移行元のバージョンを最新版にしておきます。ファイルの展開をしておくだけで、wp-config.phpは設定しないでも大丈夫です。 - 移行元のデータベースをバックアップします。
phpMyAdminなどで出力して、移行先にコピーします。 - 移行元のファイルをバックアップします。wp-contentディレクトリのplugins、themes、uploadsを使います。
- 移行先のwp-contentディレクトリに3でバックアップしたplugins、themes、uploadsを上書きコピーします。
- データベースのドメイン名の部分を書き換えます。こちらはWordPress Serialized PHP Search Replace Tool を使います。データベースの様々なところにシリアライズ化されたドメインURLがあるので、このようなツールを使って変更します。
- 移行先の、wp-login.phpにアクセスして、データベース等の設定をします。
新しいデータベースを指定します。
6が終わると移行完了です。
5.のWordPress Serialized PHP Search Replace Tool について詳しく書きます。V2.1.0を例に取ります。
ダウンロードしたzipファイルを展開するとsearchreplacedb2.phpというファイルがあるので、これをサーバー上のwordpressディレクトリにコピーします。このファイルにアクセスするとデータベースを設定する画面になります。
ここでは、修正するべき移行先の新しいデータベースに合わせて設定をします。データベースにアクセスできると、修正対象のテーブルを選択する画面になります。
全てを選択して、Continueを押します。Do be sure that you have selected the correct tables – especially important on multi-sites installs?(マルチサイトに注意)と聞いてきます。
置換するドメインを設定します。上には移行元を下には移行先の文字列を記述します。httpなどはいりません。Submitを押すと実行の最終確認を促すダイアログが出ます。
完了すると結果が表示されます。意外と広範囲に置換した文字列があることがわかります。以上でデータベースの修正は終わりです。これで、記事のリンク先などが新しいURLになります。
「ツール」の「エクスポート」ではダメなのでしょうか?
エクスポートでも可能です。画像も含めてエクスポートとインポートができますので、URLも変更できます。ただ、制限として、WordpressをインストールしているサーバーのPHPの設定によってはアップロードのサイズに上限があること、プラグインやテーマはあらためてインストールしなければいけないことがあります。テキスト中心であったり、小規模なサイトであれば、ご指摘の通り、エクスポートの方が簡単かつ確実だと思います。