WordPressローカル環境から
本番サーバーへの移行完全手順
XAMPP・Local by Flywheel・MAMPなどのローカル環境で制作したWordPressを本番サーバーへ公開する手順を完全解説します。サーバー間の移管と最大の違いはURLが localhost から本番ドメインへ変わることです。そのためデータベース内のURL一括置換が必須の作業になります。プラグインを使った方法と手動移行の両方を解説します。
📋 目次
⚠️ 1. ローカル→本番移行の特徴と必須作業
ローカル環境から本番サーバーへの移行は、URLが変わるという点でサーバー会社間の移管と大きく異なります。
WordPressのDBには記事本文・設定・ウィジェット・テーマ設定など多くの場所にURLが絶対パスで埋め込まれています。ファイルとDBを移すだけでは画像が表示されない・リンクが壊れる・管理画面にアクセスできない問題が発生します。必ずURL一括置換を行ってください。
- DBの
http://localhost/mysite/をhttps://example.com/に一括置換 wp-config.phpのDB接続情報を本番サーバーのものに書き換え- SSL証明書の設定(本番でhttpsを使う場合)
- 本番サーバーのPHPバージョン確認
🛠️ 2. ローカル環境ツールの比較・選び方
WordPressのローカル開発環境には主に3つのツールがあります。これからローカル開発を始める方の参考にしてください。
WordPress専用のローカル開発ツール。GUIのみで操作でき、ワンクリックでWordPressが起動。Live Linkでスマホ確認も可能。移行後の本番公開機能(Connect)も充実。
Apache・MySQL・PHPをセットでインストールできる老舗ツール。軽量で動作が速い。Windowsユーザーに人気。初期設定の手間がやや多め。
Mac専用に開発されたAMP環境。Macユーザーにとっては最も馴染みやすいツール。MAMP PROを使うと複数サイト管理が便利になる。
| ツール | 対象OS | 操作難易度 | WordPress専用 | 無料 |
|---|---|---|---|---|
| Local by Flywheel | Windows / Mac | ★☆☆(やさしい) | ✓ 専用 | ✓ 無料 |
| XAMPP | Windows / Mac / Linux | ★★☆(ふつう) | 汎用 | ✓ 無料 |
| MAMP | Mac(Windows版もあり) | ★★☆(ふつう) | 汎用 | 基本無料(PRO有料) |
🔌 3. 【方法A】All-in-One WP Migrationで移行(おすすめ)
All-in-One WP Migrationを使えば、ローカル→本番移行もほぼ同じ手順で行えます。プラグインがURL置換も自動で処理するため、最も簡単な方法です。
All-in-One WP Migrationをインストール・有効化
ローカルWordPressの管理画面 → プラグイン → 新規追加 で「All-in-One WP Migration」をインストール・有効化します。
エクスポートを実行する
管理画面 → All-in-One WP Migration → エクスポート → 「ファイル」をクリック。.wpressファイルがPCにダウンロードされます。ローカルのURLは後でプラグインが自動置換します。
本番サーバーでドメイン設定・DB作成・WP仮インストール
本番サーバーの管理パネルから対象ドメインを設定し、DBを作成し、WordPressを簡単インストールします。
SSL証明書を発行する
本番サーバーで無料SSL(Let's Encrypt)を発行します。https://でアクセスできる状態にしておきます。
本番の管理画面にログインしプラグインをインストール
本番サーバーのWordPress管理画面にログインし、All-in-One WP Migrationをインストール・有効化します。
インポートを実行する
管理画面 → インポート → 「ファイル」から.wpressファイルを選択します。警告が出たら「開始」をクリック。インポート完了後「パーマリンク構造を保存する」を必ずクリックしてください。
ローカルのID・パスワードで再ログイン
インポート後はログイン情報がローカルのものに上書きされます。ローカルで使っていたユーザー名・パスワードでログインしてください。
localhostのURLが本番ドメインに自動変換されるため、手動置換は不要です。全ページ・画像・フォームが正常に動作することを確認します。特にSSL(https://)で鍵マークが表示されることを確認してください。
🔧 4. 【方法B】手動移行(FTP+phpMyAdmin)
512MBを超える大容量サイト、または移行をより細かく制御したい場合は手動移行を選択します。
本番サーバーにドメインを設定する
本番サーバーの管理パネルから公開するドメインを設定します。新規ドメインの場合はドメインのネームサーバーを本番サーバーに向けておきます。
MySQLデータベースを作成する
本番サーバーの管理パネルでMySQLデータベースとユーザーを作成します。DB名・ユーザー名・パスワード・ホスト名は必ずメモしてください(後でwp-config.phpに使用)。
SSL証明書を発行する
サーバーパネルからLet's Encryptの無料SSL証明書を発行します。発行後にhttps://でアクセスできることを確認してください。
ローカルのWordPressフォルダを確認する
各ツールのWordPressファイルの場所:
・XAMPP(Windows):C:\xampp\htdocs\サイト名\
・XAMPP(Mac):/Applications/XAMPP/htdocs/サイト名/
・Local by Flywheel:~/Local Sites/サイト名/app/public/
・MAMP:/Applications/MAMP/htdocs/サイト名/
FileZillaで本番サーバーに接続してアップロード
FileZillaで本番サーバーのFTPに接続します。本番サーバーの公開フォルダ(通常 public_html/)に対して、ローカルのWordPressファイルを丸ごとアップロードします。
ローカルのphpMyAdminを開きDBをエクスポート
XAMPP/MAMPなら http://localhost/phpmyadmin/、Local by Flywheelなら管理画面の「DATABASE」タブ→「ADMINER」を開きます。WordPressのDBを選択し「エクスポート」→「実行」で.sqlファイルを保存します。
本番サーバーのphpMyAdminを開き作成したDBにインポート
本番サーバーの管理パネルからphpMyAdminを開き、作成したデータベースを選択して「インポート」タブから.sqlファイルを読み込みます。「正常に実行されました」と表示されれば完了です。
ローカルのwp-config.phpにはローカル環境のDB情報が書かれています。本番サーバーのDB情報に書き換えます。
ローカルのwp-config.phpをテキストエディタで開く
VS Codeなどのエディタで wp-config.php を開きます。以下の4項目を本番サーバーのDB情報に書き換えます:
/* ローカル環境の値(変更前)*/
define( 'DB_NAME', 'local_db_name' );
define( 'DB_USER', 'root' );
define( 'DB_PASSWORD', '' );
define( 'DB_HOST', 'localhost' );
/* 本番サーバーの値(変更後)*/
define( 'DB_NAME', '本番のDB名' );
define( 'DB_USER', '本番のDBユーザー名' );
define( 'DB_PASSWORD', '本番のDBパスワード' );
define( 'DB_HOST', 'localhost' ); // 多くの場合はlocalhostのまま
書き換えたwp-config.phpを本番サーバーにアップロード
FTPで本番サーバーのWordPressルートディレクトリにあるwp-config.phpを上書きアップロードします。
wp-config-local.php)で保存しておくと、ローカルに戻す際に楽です。これが最重要手順です。DBに記録されているローカルURLを本番URLに一括置換します。
方法①:Better Search Replace プラグイン(推奨)
本番の管理画面にログインしプラグインをインストール
この時点で本番サーバーにアクセスできることを確認。管理画面 → プラグイン → 新規追加 で「Better Search Replace」をインストール・有効化します。
テスト実行で影響件数を確認してから本番実行
ツール → Better Search Replace を開きます。
・「検索」:http://localhost/mysite(ローカルURL)
・「置換」:https://example.com(本番URL)
全テーブルを選択し、まず「ドライラン」にチェックを入れて件数確認。問題なければチェックを外して「値を置換」を実行します。
方法②:WP-CLI(上級者向け・サーバーSSHアクセス可能な場合)
wp search-replace 'http://localhost/mysite' 'https://example.com' --all-tables
s:20:"http://localhost/...")で保存されたデータがあります。単純なSQL文での置換だとシリアライズデータが壊れてサイトが動かなくなります。Better Search ReplaceやWP-CLIはこれを正しく処理します。パーマリンク設定を保存する
管理画面 → 設定 → パーマリンク設定 → 「変更を保存」をクリック。.htaccessが再生成され、URLが正常に機能するようになります。
全ページ・機能の動作確認をする
トップページ・記事・固定ページ・画像・フォーム・SSL(🔒マーク)を確認します。
Google Search Consoleにサイトを登録する
新規公開後はSearch ConsoleでサイトマップをGoogleに送信し、インデックスを促進します。
✅ 5. 移行後の確認チェックリスト
🌐 表示・動作
- ☑https://(本番URL)でトップページが正しく表示される
- ☑SSL鍵マーク🔒が表示されている・混合コンテンツエラーがない
- ☑記事・固定ページが正しく表示される
- ☑画像・動画・PDFが正しく表示される
- ☑内部リンクがすべて本番URLになっている
- ☑管理画面(/wp-admin/)にログインできる
- ☑パーマリンク設定を保存済み
- ☑お問い合わせフォームでテスト送信が成功する
📊 外部連携・SEO
- ☑Google Search Consoleにサイトを登録・サイトマップ送信済み
- ☑Google Analyticsのトラッキングコードが設置されている
- ☑WordPressの「検索エンジンがサイトをインデックスしないようにする」設定がOFFになっている(設定 → 表示設定で確認)
- ☑OGP設定(SNSシェア時のサムネイル)が正しく機能している
🔒 セキュリティ
- ☑管理者パスワードを強固なものに変更した
- ☑WordPressのデバッグモードをOFFにした(
WP_DEBUGを false に設定) - ☑不要なプラグインを削除した
- ☑バックアッププラグインを設定した
🔨 6. よくあるトラブルと対処法
wp-config.phpのDB接続情報が間違っています。DB_NAME・DB_USER・DB_PASSWORD・DB_HOST の4つを本番サーバーの正確な値に設定し直してください。DB_HOSTは多くのサーバーで localhost ですが、一部サーバーでは異なるホスト名が指定されている場合があります(サーバーパネルで確認)。
PHPエラーが表示されていない状態です。wp-config.phpに以下を追記してエラーを表示させてください:define( 'WP_DEBUG', true );define( 'WP_DEBUG_DISPLAY', true );
原因が判明したら必ず false に戻してください。主な原因はDB接続エラー、プラグインの競合、PHPバージョンの不一致です。
URL置換が正しく行われていません。Better Search Replaceで再度実行してください。ローカルURLのパターンが複数ある場合(http://localhost/ と http://localhost/mysite/ など)は、パターンごとに置換を実行してください。
WordPressのサイトURLとWordPressアドレスがローカルURLのままになっている可能性があります。phpMyAdminで wp_options テーブルを開き、siteurl と home の値を本番URLに直接変更してください。URL置換後は解消されることが多いですが、置換前にログインしようとした場合に発生します。
ローカルに大量の画像がある場合はFTP転送に数時間かかることがあります。画像のみ wp-content/uploads/ フォルダを圧縮してからアップロードするか、本番サーバーのファイルマネージャーでzip解凍する方法が速いです。あるいはAll-in-One WP Migrationプラグインを使うとファイル転送が高速化されるケースもあります。
ローカル開発時に「検索エンジンにサイトをインデックスさせない」設定がONになっていた可能性があります。WordPress管理画面 → 設定 → 表示設定 で「検索エンジンがサイトをインデックスしないようにする」のチェックをはずして保存してください。
❓ 7. よくある質問(FAQ)
Q. ローカルで使っていたテーマ・プラグインはそのまま本番でも使えますか?
はい、FTPでアップロードしたファイルにテーマとプラグインが含まれているため、そのまま本番でも使えます。ただし、ライセンス認証が必要な有料テーマ・プラグインは、本番ドメインで改めてライセンス認証が必要な場合があります。
Q. ローカルでWP_DEBUGをtrueにしていましたが、本番でも有効になりますか?
はい、wp-config.phpをそのまま移行するとデバッグモードが本番でも有効になります。本番公開前に必ず define( 'WP_DEBUG', false ); に変更してください。デバッグモードがONのままだとPHPエラーが一般ユーザーに表示されてしまい、セキュリティリスクになります。
Q. ローカルとサーバーのPHPバージョンが違う場合どうすればいいですか?
本番サーバーのPHPバージョンをローカルに合わせるか、両方でサポートされているバージョンに設定します。本番サーバーの方が新しいPHPバージョンの場合、古いプラグイン・テーマが非対応でエラーになることがあります。移行前に使用中のプラグイン・テーマの対応バージョンを確認してください。
Q. ローカルにはなかったメールサーバー機能が本番では必要です。
ローカル環境は通常メール送信機能がありません。本番公開後はフォームのテスト送信で実際にメールが届くか確認してください。WordPressのメール送信には通常サーバーのsendmail機能が使われますが、迷惑メールに入ってしまう場合はSMTPプラグイン(FluentSMTPなど)を使って確実にメール送信できる環境を整えることを推奨します。
Q. 本番公開後もローカルで開発を続けたいです。どうすればいいですか?
本番公開後は「本番→ローカルへの反映」という逆方向の移行も定期的に行うことで、ローカルと本番を同期できます。手順はほぼ逆で、本番のDB・ファイルをエクスポートしてローカルにインポートし、URLをlocalhostに置換します。All-in-One WP MigrationやDuplicatorはこの双方向の移行をサポートしています。