頑張らない!でも諦めない!必死にならずにええかげん

wordpressのMySQLデータインポート前のドメイン置換作業(SQLファイル)

      2014/11/22

wordpressでホストしているサイトをローカル環境にインポートする際に、
サーバーでエクスポートしたSQLファイルをそのままインポートすると、
ドメインなどがすべてホスト元のドメインでインポートされます。
それを移行先のドメインに置き換える手順をご紹介します。

はじめに

wordpressで構築しているサイトをバックアップする作業は大変な作業ですね。
エクスポートやインポートの作業はバックアップの為だけではありません。
テンプレートの編集を行う際やCSS変更時の表示の確認など、
本番でホストしている環境での作業は避けたいものも多くあります。

そうした本番環境では行いにくい作業はローカル環境に構築したwordpressで行うのですが、
本番環境には潤沢にある投稿もローカル環境には空っぽということもよくあることです。

本番環境のバックアップの為にエクスポートしているデータを、
ローカル環境でも利用することで、既にある潤沢な本番データを、
テスト環境の表示確認に利用することができるようになります。

そうしたインポート前の作業をご紹介します。

2014/04/18追記訂正

以下でご説明させて頂いている方法はあくまでもざっと表示を確認するために行ったものです。
運用環境にて実行される場合は、レイアウトの乱れやリンク切れなどの
意図しない表示が発生する場合があります。

その為、当方はまだ未確認ですが、以下の投稿などを参考にされ、
PHPシリアライズデータを考慮した変更を行ったほうがいいでしょう。
WordPressを設置したドメインや設置ディレクトリが変更になった場合に、たった5分で全てのURLを書き換える方法 » INSPIRE TECH

実際の確認は追って行いますが、取り急ぎ訂正させて頂きます。

ディレクトリ構成の確認

wordpressのディレクトリ構成は様々ではないでしょうか。
トップのディレクトリに対して直に配置している場合もあれば、
サブディレクトリに設置している場合もあるでしょう。

私の場合は、サブディレクトリで複数のwordpressを設置し、
さらにその下にサブディレクトリというややこしい構成で運用を開始してしまいました。
今更変更ができないだけではありますが・・・。

ローカル環境に構成するディレクトリ構成(階層の深さ)は、
ホストしている本番環境と同一になるように構成を行います。

例として以下のような構成で置換をおこなってゆきます。

01_ディレクトリ構成の相対

ディレクトリ構成の相対

置換のマッピング確認

上記のディレクトリ構成で移行を行う場合、
エクスポートした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エディタのマクロ生成の方法と保存

マクロを利用して、置換作業を行った後は保存します。

上記の①~④の置換にて、
インポートを行うだけでローカル環境に対応したMySQLデータベースのデータが生成されます。

ただし、ブログヘッダーの画像ファイルのURLに関しては注意が必要です。

wordpressのブログヘッダー画像は、
アップロードした際に、ドメイン名がファイル名に含まれる形でアップロードされます。

アップロードされたファイル名の例

algorhythnn.jp_.blg_header_rev11.gif

その為、今回のSQL文の置換作業で、ブログヘッダー画像のファイル名も置換されています。
置換後のローカルドメインを含むURLに合わせてファイル名を変更するか、
再度ブログヘッダー画像をローカル環境に合わせてアップロードする必要があります。

今後もインポートを行う可能性を考慮するならば、
ファイル側のファイル名をローカルドメインに変更し、
整合性を取る方が今後の取り込みの度にヘッダー画像を張り替える必要がなくなります。

プロモーション(btm)

Google or AdMax Promotion (it)

さいごに

MySQLのデータでドメインを含む文字列を各テーブル、各カラムの値で検索し、
置換作業を行う作業は面倒な作業です。

こうしたSQLでエクスポートしたファイルの段階で置換しておくことで、
より簡単にデータの変更を行うことができます。

*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - MySQL, 同期・シンク ,

  関連記事

eye_phpmyadmin
(データ編)phpMyAdminを利用したエクスポートオプションと出力の関係

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_phpmyadmin
phpMyAdminを利用したMySQLデータのインポート形式一覧とデータ

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_network
FileZilla Clientによるパーミッション一括変更

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_phpmyadmin
phpMyAdminを利用したMySQLデータのエクスポート

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_phpmyadmin
(テーブル単位)それでもphpMyAdminでエクスポートがサーバーエラーになってしまう場合の対処法

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_phpmyadmin
phpMyAdminを利用したMySQLデータのエクスポート形式一覧とデータ

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_local_mysql
ローカル環境へのMySQL設置

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_network
各FTPクライアントの転送モード選択の違いによる動作

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_sugarsync
ファイル共有(SugarSync)の無料アカウント取得方法(まだ取れる!)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_sugarsync
SugerSync™(.com)からのメールが騙しまがいで好感を持てない件

禁断の機能がau公式解禁!WALLETポイントの現金化がついに開放。 【無料】モ …