他サーバーからEC2のサーバーへWordPressを移行する

WordPressの移行はプラグインなどでの移行をおすすめしている場合が多いと思います。

有名なところでいえば、All-in-One WP Migrationなどを利用するケースが多いのではないでしょうか。

「All-in-One WP Migration」でWordPressを簡単にサーバー移行

この手順で移行しようとしたが、移行元or移行先でエラー吐いちゃった場合。

権限や、他の特殊なファイルが置かれてたりして丸々移動しないとまずい場合。

そんなときには手作業での移行になりますので、こちらで方法を紹介します。

WordPressの引っ越しに必要なもの

新しいサーバーとかそこら辺は選定してもらうとして、いざ引っ越し!となった場合には以下のファイルを移せばOK

・wordpressのファイル群
・DBのデータ

この2つですね。これらをまるっと移行元から取って、移行先に置く手順になります。

 注意事項

・この手順で行う場合には、WordPressをそのまま移すためバージョンも元の環境に依存します。
そのため、最新バージョンにアップグレードしつつ引っ越ししたい!ということは、同時にできません。
もちろん引っ越した後or前にアップグレードしてからは問題ないですが。

・WordPressのファイルはそのままですので、いじっていた場合には元に戻りません。WordPressが壊れたから引っ越して戻したい!という願望は叶えられません。

・壊れたから戻したい場合には、コアファイルのチェックで治る場合も少しあるのでそっちを試してみて下さい。

wp-cliでWordPressのコアファイルのチェックを行う。

・最悪のケースを考え、ちゃんとバックアップを取ってから作業しましょう。

WordPressのお引越し

WordPressのファイルを取得する。

移行前、移行先両方ssh接続可能である前提です。もし、出来ない場合には別手段でやってください。 SFTPで接続可能な場合にはまるごとDLしてくるのも手です。

圧縮してDLするので、先に、容量などをチェックして下さい。オーバーすると最悪サーバーが死にます。

# ドキュメントルートの一個上へ(wp-configがあるディレクトリの上)
# 例: ドキュメントルート=/var/www/html/public_html(/wp-config.php) => /var/www/html
cd /var/www/html

# アーカイブ化
tar cvzf /tmp/wp_files.tgz public_html

これで、/tmp/wp_files.tgzに圧縮ファイルができますので、sftpなどで回収しましょう。

#ゴミ削除
rm -f /tmp/wp_files.tgz

これでローカルに落とせました。次にDBのデータを取ります。

DBのデータを取るには、DBを覗けるアカウントが必要になります。覚えてない場合には、DocumentRootのwp-config.phpを見てDB情報が書かれているため、確認します。

(例)$ cat /var/www/html/public_html/wp-config.php

DBダンプ取得 (InnoDBの場合)

ionice -c 2 nice -n 19 mysqldump -udb_user -p --single-transaction orig_db_name > /tmp/db_dump.sql
> db_passwd

こちらで、/tmp/db_dump.sqlが生成されました。これで必要なデータは揃いましたので、引越し先に持っていきます。

配置して完了するまでは長くなってしまったので別記事で。

Pluginを使わずに、手作業でWordPressのサーバーを 移行させる(新しいサーバーにデータを配置)

また、このデータがあれば誰でもあなたのサイトを作る事ができる状態であるということです。
大切に扱って下さい。