ローカル環境で作成したWordPressを、本番サーバーへ移行する。移行先はスタンダードに本番サーバのルート直下とする。なお、プラグインは使用せず、データベースに保存されたURLの書き換えはSearch Replace DBを使用する。
コンテンツ
移行元と移行先の環境の確認
移行元のローカル環境でドメインのルート直下に作成したWordPressを、本番サーバーのルート環境へデプロイする。
環境 | ローカル | サーバー |
---|---|---|
ディレクトリ | ルート直下 | ルート直下 |
サーバー | Local by Flywheel | レンタルサーバー |
MySQL管理ツール | Adminer | phpMyAdmin |
テーブル接頭辞 | wp_ | wp_ |
URL置換 | – | Search-Replace-DB |
WordPressをローカル環境から本番サーバーへアップロードする手順
移行先の環境を準備する
データベースを新規作成する
本番サーバのphpMyAdminは、レンタルサーバ側でデータベースの新規作成機能が制御されており、phpMyAdmin上でデータベースを新規作成できなかった。
そのため、レンタルサーバのコンパネからベータベースを新規作成した。
この時、移行先環境のMySQL設定はメモしておくと良い。
データベースURL | https://XXXXXX.XXX/ |
---|---|
データベース名 | XXXXXX |
MySQLユーザ | XXXXXX |
パスワード | XXXXXX |
文字コード | UTF-8 |
ローカル環境のWordPressフォルダをコピ
ローカル環境のWordPress作業フォルダをデスクトップなどに複製する。
コピーしたフォルダ内のwp-config.phpと.htaccessを編集する
ローカル環境でコピーしたフォルダの構成はこのようになっている。
- 作業フォルダ
- wp-admin
- wp-content
- wp-includes
- .htaccess //こちらを編集する
- wp-config.php //こちらを編集する
- …
まず、wp-config.php
をエディターで開き、本番用に作成したデータベースの設定のとおりに編集する。
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'XXXXXX');
/** MySQL database username */
define('DB_USER', 'XXXXXX');
/** MySQL database password */
define('DB_PASSWORD', 'XXXXXX');
/** MySQL hostname */
define('DB_HOST', 'XXXXXX');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
.htaccess
については移行先のルート直下にアップロードするので、以下のまま修正を行わない。
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
本番環境へ資材をアップロード
WordPressフォルダをレンタルサーバへアップロードする
本番サーバとFTPで接続し、複製したWordPressフォルダをルート直下にアップロードする。この時、作業フォルダの中身のすべてをアップロードする。
- 作業フォルダ //アップロードしない
- wp-admin //アップロードする
- wp-content //アップロードする
- wp-includes //アップロードする
- 各ファイル //アップロードする
ローカル環境のデータベースをエクスポートする
ローカル環境のAdminerにアクセスし、エクスポートするデータベースのテーブルを選択し、エクスポートをクリックする。

出力を保存
とし、形式をSQL
を指定する。ほかの項目はデフォルトで良い。
拡張子が.sql
のファイルがダウンロードされる。
本番サーバにデータベースをインポートする
本番サーバのphpMyAdminを開く。
さきほど作成したデータベースをクリックし、インポートタブを表示する。

インポートするファイル
で、ローカル環境からエクスポートしたファイルを選択し、実行をクリックする。
データベースのインポート完了

データベースを置換
Search-Replace-DBをアップロードする
URLの書き換えを行うため、Search-Replace-DBというフリーツールをダウンロードする。
Database Search and Replace Script in PHPへアクセスし、Search-Replace-DB v4.1.2から最新のSearch-Replace-DBをダウンロードする。Search-Replace-DB-4.1.2
の末尾についているバージョン番号4.1.2
は適宜読み替えること。
Search-Replace-DB-4.1.2.zip
というzipファイルをダウンロードできるので解凍する。解凍したフォルダの構成は、
- Search-Replace-DB-4.1.2
- Search-Replace-DB-4.1.2 //フォルダごとアップロードする
- tests
- .editorconfig
- .htaccess
- index.php
- etc
- Search-Replace-DB-4.1.2 //フォルダごとアップロードする
とこのようになっているので、Search-Replace-DB-4.1.2
フォルダを、本番サーバのpublic_html
直下(wp-content
と同階層)にアップロードする。
本番サーバの構成は次のようになる。
- public_html
- Search-Replace-DB-4.1.2
- wp-admin
- wp-content
- wp-includes
- 各種ファイル
URLを書き換える
Search-Replace-DBの操作画面である、https://XXXXXX.com/Search-Replace-DB-4.1.2/index.php
へアクセスする。

入力項目は以下の通り。
SearchReplace
replace | 置換元URL |
---|---|
with | 置換先URL |
Database Details
database name | データベース名 |
---|---|
username | データベースのユーザ名 |
pass | データベースのパスワード |
host | ホスト名 |
port | ポート番号 |

ポート番号は省略可能。MariaDB5 の場合は 3306、MariaDB10 の場合は 3307を試す
入力が完了したら、Test connection
ボタンをクリックして、データベースに接続する。成功すると、Success. You are connected.
と表示される。
次に、Let's go
の右横にある、Do a safe test run
ボタンをクリックする。これは試行運転なので実際に置換は行われず、安全に置換が行えるかどうか検証することができる。
問題なければ、Let’s goの欄にあるSearch and Replace
ボタンをクリックして、置換を実行する。

Search-Replace-DBを削除する
Search-Replace-DB
がサーバー上に残っているとセキュリティ面で脆弱性となるため、速やかに削除する。
削除の方法は、DELETEの右横にあるdelete me
ボタンをクリックする。

削除が成功すると、アカウント登録を求められるがスルーで良い。

ただこれだけではサーバー上に残骸が残ることがあるので、必ず確認しサーバーからもSearch-Replace-DB-4.1.2
フォルダを削除する。
本番URLへアクセスしよう
本番URLへアクセスすると、WordPressの移行が完了した状態(ローカル環境と同一)で表示される。もしもローカルのURLへリダイレクトした場合などは、キャッシュを削除すると良い。
以上で、ローカルからサーバーへ移行が完了する。画像の読み込み元がローカルになっていないか、リンクが適切に置換されているか確認すると良い。
またWordPressテーマがブロックテーマの場合は、テーマフォルダのドメイン部分も移行先の内容に置換する必要がある。