概要
WPでディレクトリ構造を変更したりドメイン名を変更したりすると,DBも書き換える必要がある.
例)example.com → newdomain.com
WPの場合,DBのwp-optionsだけでなく,投稿内に挿入した画像URLにもフルパスが書き込まれる.
そのため,置換対象のドメイン名がDB内に大量に含まれる.
また,一部のプラグインではURLをシリアライズしている場合がある.
シリアライズされているデータは,単純に文字列置換をすると整合性が取れなくなり,パース時にエラーが出るようになってしまう.
これらの問題を解決し,簡単にドメイン名を変更できるツールを紹介する.
事前準備
- 移転先に全ファイルを複製しておく.
- DBをバックアップしておく.
- DBも移転するなら,移転先にインポートしておく.
- サイトを見ていた場合は閉じておく.
ツールダウンロード
以下にアクセス.
DATABASE SEARCH AND REPLACE SCRIPT IN PHP
v3.0.0 betaをダウンロードして解凍する.
betaではあるが,筆者が使用している限りは問題は見当たらない.
安定版はv2.1.0なので,こちらを使用しても良い.
v2.1.0の解説は以下のサイトなど
ウィジェットも対応。WordPressでサーバ移転時にデータベースのドメインを置換する方法
設置
__移動先__のディレクトリ(wp-congfig.phpを置いた階層)に,解凍したフォルダごと設置(アップロード)する.
使い方
ブラウザでツールにアクセスする
search/replace
replace欄に旧アドレス,with欄に新アドレスを入力する.
「use regex」にチェックを入れると,正規表現も使用可能.
databese
同階層にwp-config.phpが見つかった場合はdatabase設定を自動で読み込んでくれる.
database欄が空欄の場合は,置換対象のDB設定を入力する.
tables
tables欄で「select tables」を選択すると,テーブルを限定して置換が行える.
複数選択は,Commandキー(WindowsはCtrlキー)やShiftキーを使用.
columns to exclude(空欄可)
この欄にカラム名を入れると,そのカラムを除外する.
columns to include only(空欄可)
この欄にカラム名を入れると,そのカラムのみを置換する.
置換欄記述方法
通常
例)
example.com → newdomain.co.jp (ドメイン変更)
example.com → www.example.com (www追加)
example.com → new.example.com (サブドメイン化)
dev.example.com → example.com (本番化)
replace
[dev.example.com]
with
[newdomain.co.jp]
上記のように入力すれば,ごっそり置換してくれる.
ディレクトリ変更あり or メールアドレスの設定は変更したくない場合
単純に置換してしまうと,以下のようになってしまう.
example.com → example.com/site
mail@example.com → mail@example.com/site
replace
[http://example.com]
with
[http://example.com/site]
上記のように,「http://」も入れれば良い.
- サイト内で「https://」も使用している場合は,そちらも忘れずに.
- ディレクトリ変更の場合は,.htaccessも書き換える必要があるので注意.
メールアドレスのドメイン部分のみ変更したい場合
replace
[@example.com]
with
[@mail.example.com]
上記のように,「@」も入れれば良い.
その他
ドメインだけでなく,どんな文字列でも置換できる.はず.
例)
Microsoft → microsoft
Apple Computer → Apple,Inc.
実行 : actions
dry run
実行して結果だけ表示.
live run(おすすめ)
置換中のファイルを表示しながら実行.
ツール削除
外部からDBのデータを書き換えられる状態になっているので,ツール自体を必ず削除する.
「delete me」ボタンを押すと自動で削除される.
「Could not delete the search replace script automatically.」
上記のようなエラーが出た場合は,サーバ上から手動で削除する.
置換後
置換後にサイトを開き,もしInternal Server Errorなどのエラーが出ていたら,
パーマリンク設定ページから「変更を保存」を押すと直る場合が多い
[newdomain.com/wp-admin/options-permalink.php]