本番環境に設置したWordPress(ソース+DBデータ)を開発環境(ローカル環境)に移行する手順について取り上げます。なお、開発環境ではvccwを利用します。vccw以外(XAMPPなど)でも基本的な手順は同じなので参考にはなるかと思います。
本番環境作業
WordPressを移行するには、ソースファイルとDBデータを本番環境から取得しておく必要があります。
ソースファイルのダウンロード
ソースをダウンロードします。私の場合、まずzipコマンドで対象ファイル一式を圧縮します。
zip -r 対象フォルダ.zip 対象フォルダ/
その後、圧縮したファイルをWinSCPなどのFTPツールを利用してダウンロードします。
DBデータの取得
mysqldumpコマンドを利用すれば、SQLベースでデータを抽出できます。
mysqldump -u DBユーザ名 -p WordPressのデータベース名 > wp.dump.sql
サーバー上で上記コマンドを実行すると、DBユーザ名に対応するパスワードが聞かれます。
パスワードを入力すると、wp.dump.sql
というファイルができるので、FTPツールでローカルにダウンロードします。
以上でサーバー側の作業は終了です。
ローカル作業(開発環境構築)
vccwで開発環境を構築します。私の場合、site.yml内の以下設定をを適宜修正して利用しています。
- sync_folder
- hostname
- ip
- rewrite_structure
- document_root
ローカル作業(移行作業)
vccwのドキュメントルート配下に、本番環境から取得した「ソースファイル」と「DBデータ( wp.dump.sql
)」を格納します。
デフォルトですと、vccw作成時に wwwフォルダ
が作成されます。 wwwフォルダ
は、仮想マシンとホストマシンの共有ディレクトリの設定がされているはずなので、この中にサーバーから取得したファイルを格納します。
これ以降は、仮想マシン上での作業です。 vagrant ssh
で仮想マシンにログインしてください。
DB展開
vccwを作成した際に、wordpress用のDBが自動で作成されているので、
mysqladmin -u root -p drop wordpress
mysqladmin -u root -p create wordpress
mysql -u root -p wordpress < wp.dump.sql
もし本番環境のDB名がwordpress以外の場合、DBの削除は必要ありませんが、対象となるDBを作成してからwp.dump.sqlのデータを展開してください。
wp-config.phpの修正
DBのユーザー名やパスワードなど開発環境に合わせて適宜修正します。
URL置換
リンク先などが本番環境のままなので、URLの置換を行います。
URLの置換ですが、DB内を直接修正すると、シリアライズされたデータが修正されないままになってしまいます。URLを置換するには、WP-CLIを利用します。vccwであれば、デフォルトで利用できます。
WordPressがインストールされているディレクトリで下記コマンドを実行するとURL置換してくれます。このとき wp-config.php
からDBのユーザ名などを取得するので、開発環境に合わせて修正していないとエラーになります。注意してください。
wp search-replace '本番環境のURL' '開発環境のURL'
もし、WordPressがインストールされているディレクトリ以外で実行したい場合は–pathオプションでWordPressが存在するディレクトリを指示してください。
wp search-replace --path=/var/www/html/wordpress '本番環境のURL' '開発環境のURL'
以上で移行完了です。