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の手動移行が完了します。手順を整理すると以下のようになります。

  1. lftp でWordPressのファイルをバックアップ
  2. mysqldump でデータベースをエクスポート
  3. MySQLデータベースをインポート
  4. wp-config.php を更新
  5. パーマリンクを再設定

トラブルを避けるため、移行前には十分なバックアップを取ることをおすすめします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です