wordpressを使っているとドメイン変更でも、サブドメインでもとにかく面倒です。CMSなのでそのへんうまくやってくれないのかと思ったりしてますが、そうはいきません。
※このあたりは、バージョンアップしていくなかいつかは自動でやってくれないかと期待してます!
www.sample.co.jp -> www2.sample.co.jpに変更する場合の手順を示します
DB内データの書き換えを行います。
※バックアップ&復元の操作とほとんど同じです。
1.該当するDB内データをすべてSQLにて出力します。(SQL Dump)
上記参考。バックアップ手順を参考に。
※一部違うところは圧縮は「なし」を選択してください。次の作業で直接ファイルを開くためです。
※コマンドラインからは、mysqlがインストールされたディレクトリ内にmysqldumpがあります。これを直接実行します。
[code]mysqldump –add-drop-table -u [mysqlのユーザ名] -p [wordpressデータベース名] > dump.sql[/code]
※実行後パスワード入力が必要です。
dump.sqlというSQLファイル(テキストファイル)が作成されます。
2.出力したSQLファイル(テキストファイル)から文字列置換を行います。
SQLファイルをPCで開きます。
※コマンドラインから実行している場合は、FTPなどでPCへ取得してください。
文字列置換機能のあるテキストエディタで開きます。(秀丸エディタなど)
古いドメイン名を新しいドメイン名に置換します。
[www.sample.co.jp] -> [www2.sample.co.jp]
3.バックアップファイルから復元
phpMyAdminでは、インポートから上記作成したSQLファイルを選択して実行するだけです。
コマンドラインからは、以下のコマンドを入力します。
[code]mysql -u [mysqlのユーザ名] -p [wordpressデータベース名] < dump.sql(2で文字列置換したもの)[/code]
※実行後パスワード入力が必要です。
上記でDBの書き換え終了です。
この時点では、www.sample.co.jpとwww2.sample.co.jpのどちらからもアクセスができない状態です。
DNSを変更していただき、www2.sample.co.jpからアクセス可能になれば、表示されるようになります。
DBを直接SQL文にて変更してしまう場合
記事内のデータは、DBに保存されているため、DB内をすべて書き換えればOK。SQLに詳しい方は以下を実行してみましょう。
以下のSQLコマンドでOKです。旧ドメイン=www.sample.co.jp 新ドメイン=www2.sample.co.jp
[code]
UPDATE wp_options SET option_value=REPLACE(option_value,"旧ドメイン","新ドメイン") WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
UPDATE wp_posts SET post_content=REPLACE(post_content,"旧ドメイン","新ドメイン");
UPDATE wp_posts SET guid=REPLACE(guid,"旧ドメイン","新ドメイン");
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"旧ドメイン","新ドメイン");
[/code]