WordPressの手動引っ越し方法
WordPressの手動引っ越し(移行)を行う際には、サイトのファイルとデータベースのバックアップを取得し、新しい環境へアップロードする必要があります。本記事では、lftp
を使用したファイル転送と mysqldump
を使用したデータベースのエクスポート・インポート方法を紹介します。
WordPress引っ越しプラグインを使用した場合、あまりに大きい引っ越しサイズになる場合は引っ越しできないことがあるのでこちらが確実です。
目次
1. WordPressサイトのファイルをバックアップ
まず、現在のサーバーからWordPressのファイルをローカルへダウンロードします。
(1) lftp
を使用したファイルの移動
lftp
コマンドを使用して、リモートサーバーからリモート環境へWordPressのデータをダウンロードします。
WordPressサーバにSSHログインしてから
cd ./<wordpressのメインフォルダへ移動>
lftp -p <port番号> -u <SSH接続ユーザ> sftp://<SSHサーバ>
cd ./<リモートサーバのwordpressのメインフォルダへ移動>
ls
このコマンドで、サーバーに接続し、ディレクトリ内のファイル一覧を確認できます。
次に、mirror
コマンドを使って、サイトのファイルをリモートサーバにアップロードします。
mirror --verbose -R -P 4 ./ ./
--verbose
: 詳細なログを表示-R
: ディレクトリを再帰的に取得-P 4
: 並列処理を4スレッドで実行- ./: リモートサーバーのWordPressフォルダ
./
: ローカル環境の保存先
mirrorは完全に同期するので、リモート先が正しいこと、リモート先に重要なファイルがないことを確認しましょう
ダウンロードが完了したら、ローカルにバックアップができていることを確認しましょう。
2. WordPressのデータベースをバックアップ
WordPressのデータベースは mysqldump
を使用してエクスポートします。
(1) データベースの各テーブルを個別にバックアップ
下記コマンドで各TableをIMPORTするSQLファイルを個別で生成します。PHPMYADMINのExportだとSQLファイルが1つのため、大きすぎるSQLがインポート先でインポートできないためです
for table in $(sudo mysql -D bitnami_wordpress -u bn_wordpress -p -e 'SHOW TABLES;' -s --skip-column-names); do
sudo mysqldump -u bn_wordpress -p bitnami_wordpress "$table" \
--no-tablespaces --skip-lock-tables --single-transaction --quick --compact > "${table}.sql"
done
このスクリプトは、以下の処理を実行します。
SHOW TABLES;
を実行し、データベースのテーブル一覧を取得- 各テーブルを個別にダンプ(エクスポート)し、
table_name.sql
というファイルに保存 --no-tablespaces
: InnoDBテーブルスペースの情報を含めない--skip-lock-tables
: ロックを回避し、処理を高速化--single-transaction
: トランザクションを1回だけ実行して整合性を確保--quick --compact
: データのダンプを高速化
通常のmysqldumpだとLOCK TABLEが入ってしまい、インポートの際に固まる場合があるのでLOCK TABLEを入らないようにしています。
すべてのテーブルのSQLファイルがエクスポートされたことを確認してください。
このコマンドを実行すると、ローカルのWordPressフォルダをリモートサーバーへアップロードできます。
3. 新しいサーバーへデータベースをインポート
新しいサーバーに先ほどのSQLファイルたちをコピーして下記コマンドを実行します。
データベースに接続し、エクスポートしたSQLファイルをインポートします。
for file in *.sql; do
mysql -u new_db_user -p new_database < "$file"
done
new_db_user
: 新しいサーバーのMySQLユーザー名new_database
: 新しいデータベース名*.sql
: すべてのSQLファイルをインポート
4. wp-config.php
の設定を更新
新しいサーバーで wp-config.php
を編集し、データベース情報を更新します。
define('DB_NAME', 'new_database');
define('DB_USER', 'new_db_user');
define('DB_PASSWORD', 'new_db_password');
define('DB_HOST', 'localhost');
5. パーマリンク設定をリセット
管理画面(/wp-admin/
)にログインし、[設定] → [パーマリンク] で「変更を保存」をクリックすると、.htaccessの設定が更新され、正常にリダイレクトされるようになります。
まとめ
この方法で、WordPressの手動移行が完了します。手順を整理すると以下のようになります。
lftp
でWordPressのファイルをバックアップmysqldump
でデータベースをエクスポート- MySQLデータベースをインポート
wp-config.php
を更新- パーマリンクを再設定
トラブルを避けるため、移行前には十分なバックアップを取ることをおすすめします。