wordpressのMySQLデータインポート前のドメイン置換作業(SQLファイル)
2014/11/22
wordpressでホストしているサイトをローカル環境にインポートする際に、
サーバーでエクスポートしたSQLファイルをそのままインポートすると、
ドメインなどがすべてホスト元のドメインでインポートされます。
それを移行先のドメインに置き換える手順をご紹介します。
はじめに
wordpressで構築しているサイトをバックアップする作業は大変な作業ですね。
エクスポートやインポートの作業はバックアップの為だけではありません。
テンプレートの編集を行う際やCSS変更時の表示の確認など、
本番でホストしている環境での作業は避けたいものも多くあります。
そうした本番環境では行いにくい作業はローカル環境に構築したwordpressで行うのですが、
本番環境には潤沢にある投稿もローカル環境には空っぽということもよくあることです。
本番環境のバックアップの為にエクスポートしているデータを、
ローカル環境でも利用することで、既にある潤沢な本番データを、
テスト環境の表示確認に利用することができるようになります。
そうしたインポート前の作業をご紹介します。
2014/04/18追記訂正
以下でご説明させて頂いている方法はあくまでもざっと表示を確認するために行ったものです。
運用環境にて実行される場合は、レイアウトの乱れやリンク切れなどの
意図しない表示が発生する場合があります。
その為、当方はまだ未確認ですが、以下の投稿などを参考にされ、
PHPシリアライズデータを考慮した変更を行ったほうがいいでしょう。
WordPressを設置したドメインや設置ディレクトリが変更になった場合に、たった5分で全てのURLを書き換える方法 » INSPIRE TECH
実際の確認は追って行いますが、取り急ぎ訂正させて頂きます。
ディレクトリ構成の確認
wordpressのディレクトリ構成は様々ではないでしょうか。
トップのディレクトリに対して直に配置している場合もあれば、
サブディレクトリに設置している場合もあるでしょう。
私の場合は、サブディレクトリで複数のwordpressを設置し、
さらにその下にサブディレクトリというややこしい構成で運用を開始してしまいました。
今更変更ができないだけではありますが・・・。
ローカル環境に構成するディレクトリ構成(階層の深さ)は、
ホストしている本番環境と同一になるように構成を行います。
例として以下のような構成で置換をおこなってゆきます。
置換のマッピング確認
上記のディレクトリ構成で移行を行う場合、
エクスポートしたSQLファイルの置換を以下のような順で行っていきます。
置換の順序は長い文字列から順に置換を行っていき、最後に短い部分の置換をします。
(ドメイン名などの文字列は各自の環境に読み替えてください)
①インストールディレクトリの置換
algorhythnn.jp/blg/wordpress → htdocs.domain.local/blg_local/wp361
②サイトURLの置換
algorhythnn.jp/blg → htdocs.domain.local/blg_local
③ドメイン名の置換
algorhythnn.jp → htdocs.domain.local
④サイトURLの相対パス置換
/blg/ → /blg_local/
置換作業
置換作業はテキストエディタを用いて行います。
私はSakuraエディタを利用して行っています。
こうした繰り返しの置換作業は何度も同じ事を行う必要があるため、
最初の1回目の作業をマクロに記録し、
2回目以降はそのマクロ実行を行うことで効率化とミスの防止が図れます。
上記の例でいえば、sakuraエディタのマクロは以下のようなマクロになります。
sakuraエディタのマクロ生成の方法と保存
1 2 3 4 5 6 7 8 9 |
//キーボードマクロのファイル S_ReplaceAll('algorhythnn.jp/blg/wordpress', 'htdocs.domain.local/blg_local/wp', 24); // すべて置換 S_ReDraw(0); // 再描画 S_ReplaceAll('algorhythnn.jp/blg', 'htdocs.domain.local/blg_local', 24); // すべて置換 S_ReDraw(0); // 再描画 S_ReplaceAll('algorhythnn.jp', 'htdocs.domain.local', 24); // すべて置換 S_ReDraw(0); // 再描画 S_ReplaceAll('/blg/', '/blg_local/', 24); // すべて置換 S_ReDraw(0); // 再描画 |
マクロを利用して、置換作業を行った後は保存します。
上記の①~④の置換にて、
インポートを行うだけでローカル環境に対応したMySQLデータベースのデータが生成されます。
ただし、ブログヘッダーの画像ファイルのURLに関しては注意が必要です。
wordpressのブログヘッダー画像は、
アップロードした際に、ドメイン名がファイル名に含まれる形でアップロードされます。
アップロードされたファイル名の例
algorhythnn.jp_.blg_header_rev11.gif
その為、今回のSQL文の置換作業で、ブログヘッダー画像のファイル名も置換されています。
置換後のローカルドメインを含むURLに合わせてファイル名を変更するか、
再度ブログヘッダー画像をローカル環境に合わせてアップロードする必要があります。
今後もインポートを行う可能性を考慮するならば、
ファイル側のファイル名をローカルドメインに変更し、
整合性を取る方が今後の取り込みの度にヘッダー画像を張り替える必要がなくなります。
さいごに
MySQLのデータでドメインを含む文字列を各テーブル、各カラムの値で検索し、
置換作業を行う作業は面倒な作業です。
こうしたSQLでエクスポートしたファイルの段階で置換しておくことで、
より簡単にデータの変更を行うことができます。
関連記事
-
(データ編)phpMyAdminを利用したエクスポートオプションと出力の関係
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
phpMyAdminを利用したMySQLデータのインポート形式一覧とデータ
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
FileZilla Clientによるパーミッション一括変更
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
phpMyAdminを利用したMySQLデータのエクスポート
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(テーブル単位)それでもphpMyAdminでエクスポートがサーバーエラーになってしまう場合の対処法
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
phpMyAdminを利用したMySQLデータのエクスポート形式一覧とデータ
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
ローカル環境へのMySQL設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
各FTPクライアントの転送モード選択の違いによる動作
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
ファイル共有(SugarSync)の無料アカウント取得方法(まだ取れる!)
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
SugerSync™(.com)からのメールが騙しまがいで好感を持てない件
禁断の機能がau公式解禁!WALLETポイントの現金化がついに開放。 【無料】モ …