WordPress を使っていると、「レンサバの期限が契約期限が切れるんだけど、他のレンサバ会社に移ろうかなー」とか「そろそろレンサバやめて VPS or AWS にしようかなー」とか思ったりする時があると思うんですよ。
そんなとき「でも引っ越しメンドくさそうだしなー」とか思って諦めたりするひとも多いと思います。
そこで、しょっちゅうサイトの引っ越しをしている私が引っ越し方法を解説。
基本は「WordPress をインストールしてあるディレクトリ以下のファイルを全部コピー」と「MySQL データをダンプ&インポート」するだけですが、その辺を簡単にやる方法をまとめます。
WordPress ソースの移行
WordPress をインストールしてあるディレクトリ以下のファイルを全部コピーでいいんですが、ちまちま FTP クライアントとかでダウンロードしてアップロードとかしてたらメンドくさいです。
手動でやると抜けも発生するかもですね。
ってわけで、引っ越し先のサーバでは SSH 接続ができるレンサバ or VPS or AWS を選びましょう。
AWS を選ぶなら、網元でインスタンスを建てるのが良いと思うよ(ステマ)。
引っ越し先、引っ越し元で ssh 接続できる場合
rsync で一発ですね。
rsync コマンドが使えない場合は $ sudo yum install rsync
とかしてインストールしてやってください。
$ rsync -avz --delete \ -e ssh user@original:~/path/to/wordpress/ \ /path/to/wordpress/
2行目の user@original は引っ越し元サーバへの ssh 接続情報
例えば、引っ越し元サーバが example.com で ssh 接続ユーザ名が wokamoto の場合は wokamoto@example.com
ssh 接続用の秘密鍵が ~/.ssh/id_rsa では無くて、例えば original.pem とかの場合は
-e 'ssh -i original.pem' wokamoto@example.com:~
とかにしよう。
2行目の ~/path/to/wordpress/ は、引っ越し元サーバの WordPress が保存されてるディレクトリ。
~/www/example.com/ とかですね。最後のスラッシュ ( '/' ) を忘れずに。
3行目の /path/to/wordpress/ は、引っ越し先サーバの WordPress を保存するディレクトリ。
~/www/example.com/ とか /var/www/html/ とかですね。こっちも、最後のスラッシュ ( '/' ) を忘れずに。
引っ越し先では SSH 接続できるが、引っ越し元は ftp 接続しかできない場合
引っ越し先で SSH 接続できて wget が使えると仮定してます
wget コマンドが使えない場合は $ sudo yum install wget
とかしてインストールしてやってください。
$ cd /path/to/wordpress $ wget --mirror \ --ftp-user=ftpuser --ftp-password=ftppassword \ --no-host-directories --restrict-file-names=nocontrol \ ftp://ftp.example.com/path/to/wordpress/
1行目の /path/to/wordpress は、引っ越し先サーバの WordPress を保存するディレクトリ。
3行目の ftp-user, ftp-password は、引っ越し元サーバに FTP 接続する時のユーザ名とパスワード。
4行目の --restrict-file-names=nocontrol
は、ファイル名がマルチバイト文字(日本語とか)の場合に文字化けしないようにするためのオプションです(詳しいことはググってね)。
5行目の ftp://ftp.example.com/path/to/wordpress/ は、引っ越し元サーバに FTP 接続する時の接続情報。
ftp.example.com っていうサーバの path/to/wordpress/ に WordPress がインストールされているモノとしています。
引っ越し元のサーバの ~/www/example.com/ に入ってるなら、 ftp://ftp.example.com/www/example.com/ で良いと思うよ。
引っ越し先、引っ越し元で ssh 接続できない場合
FTP クライアントで全部ダウンロードしてからアップロードすれば良いんじゃない?
メンドくさいから SSH 接続を開放してないレンサバは借りない方が良いと思うよ。
MySQL データの移行
MySQL データをダンプ&インポートすれば良いよ。
SSH 接続できる場合は mysqldump, mysql コマンドを使おう。
使えない場合は phpMyAdmin とかでやれば良いんじゃないかな?
mysqldump で引っ越し元から MySQL データをダンプ
$ mysqldump --default-character-set=binary \ -h localhost -u mysqluser -p wordpress_db > wpdump.sql
--default-character-set=binary
オプションをつけると、バイナリでダンプしてくれます。
引っ越し元と、引っ越し先の MySQL バージョンが違う場合の文字化けの可能性が減るよ。
2行目の -h localhost
は、引っ越し元の MySQL サーバ名。localhost なら特に設定しなくても良いけど sakura の共用サーバとかの場合は、MySQL サーバが localhost ではなくて別建てなので、指定してあげてね。
2行目の -u mysqluser
MySQL 接続ユーザ名。
2行目の wordpress_db
は、WordPress のデータが格納されている DB Name。
これで wpdump.sql って言う名前でダンプファイルができるので、ダウンロードして引っ越し先のサーバにコピーしておいてあげよう。
ダンプした MySQL データをインポート
$ mysql -u mysqluser -p wordpress_db < mysqldump.sql[/text] 特に説明は要らないよね? あとは、wp-config.php の以下の箇所を引っ越し先に合わせて修正してあげてください。 [PHP]// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('DB_NAME', 'mysql_dbname'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'mysql_username'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'mysql_password'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost');[/PHP] DNS 変更前に引っ越しが正常にできたかどうかを確認するには Mac なら /etc/hosts を、Win なら c:¥windows¥system32¥drivers¥etc を書き換えてみれば良いと思うよ。 Mac での変更方法は msng さんの記事が参考になります。 Mac で hosts を変更する方法 – 頭ん中
良いお引っ越しを!
ピンバック: WordPress の引っ越し方法色々 | dogmap.jp | WEBの隅っこ on wordpress
ピンバック: [つぶやき]2013年1月16日 | ベノナイン
ピンバック: mysqldumpしたファイルをローカルのMAMPにインポートする | Shinichi Nishikawa's blog