今回はローカル環境で開発したWordPressサイトをレンタルサーバーに移行する際の手順を解説します。
想定する環境はMac OS、MAMP(ローカル環境)、エックスサーバー(レンタルサーバー)です。
- MAMPで構築したサイトを本番環境にアップしたい
- ローカル環境からの移行手順を詳しく知りたい
- 移行の際によくあるエラーと対処法が知りたい
この記事を読むだけでローカルからの移行が完了するように解説しています。
それではやっていきましょう。
エックスサーバーでWordPressを新規インストール
エックスサーバーの移行したいドメインでWordPressを新規インストールしていきます。

サーバーパネル>「WordPress簡単インストール」をクリック。
インストールしたいドメインを選択して、入力画面に移ります。

ブログ名、ユーザー名、パスワードなどは自分のわかりやすいように入力しましょう。
確認画面で情報を確認したらインストールします。

確認画面をスクショしておくのが一番簡単です。
次はMAMPでの作業に移ります。
MAMPからSQLデータをエクスポート
まずはMAMPを起動すると、MAMPのページに飛ぶので、「TOOLS」>「PHPMYADMIN」をクリック。

左側のバーから今回移行したいデータベースを選択し、上のタブメニューから「Export」を選択。

Export methodを「Custom」に、Outputを「Save output to a file」にチェックします。
一番下までスクロールしてgoをクリック。
すると.sqlで終わるデータベースのファイルがダウンロードされます。
これは後で使うのでわかりやすい場所に保存しておきましょう。
MAMPのwp-config.phpを書き換える
次はMAMPの中のwp-config.phpを本番用の記述に書き換えていきます。
MAMPで管理しているサイトが複数ある場合は少しやり方が異なるので以下を参考にしてください。
【MAMP環境で一つのサイトしか作成していない場合】
アプリケーション>MAMP>htdocs>wp-config.phpと進みます。
【MAMPで複数のサイトを作成してある場合】
アプリケーション>MAMP>htdocs>サイト名>wp-config.phpと進みます。
wp-config.phpの中身をエディターで見てみると以下のような記述があるはずです。
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'test2' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'root' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'root' );
/** MySQL のホスト名 */
define( 'DB_HOST', 'localhost' );
これをエックスサーバーのwordpressインストール確認画面で控えた情報を元に次のように変更していきます。

・DB_NAME: '移行前のサイト名' から 'MySQLデータベース名' に変更
・DB_USER: 'root' から 'MySQLユーザー名' に変更
・DB_PASSWORD: 'root' から 'MySQLパスワード' に変更
・DB_HOST: 'localhost' から 'MySQL5.7ホスト名' に変更
MySQL5.7ホスト名はエックスサーバーのサーバーパネルから「データベース」>「MySQL設定」と進むことで確認できます。(下の画像の赤で囲った部分です。)

書き換えが終わったら上書き保存をします。次はFTPソフトを使ってデータをサーバーにアップしていきます。
MAMPのデータをエックスサーバーに移行する【CyderDuckを使用】
今回はFTPソフトのCyberDuckを使用して、エックスサーバーにファイルをアップロードしていきます。
FTPソフトとはレンタルサーバーなどの本番環境のサーバーに接続し、ファイルのやり取りを行う時に使用するソフトです。
「Cyberduck」や「FileZilla」が有名ですが、使いやすいものをインストールして使いましょう。
FTP情報を元にエックスサーバーに接続
CyberDuckを起動して左上の「新規接続」をクリックすると、以下のような画面になります。

ここにはエックスサーバーのFTP情報を入力していきます。
下の画像のようにエックスサーバー契約時のメール「【Xserver】□重要□サーバーアカウント設定完了のお知らせ」からFTP情報を確認できます。
・サーバ → メールに記載の「FTPホスト名(FTPサーバー名)」
・ユーザー名 → メールに記載の「FTPユーザー名(FTPアカウント名)」
・パスワード → メールに記載の「FTPパスワード」

3つの情報を入力したら接続をクリック。

こんな画面に慣れば接続成功です。
htdocs内のファイルをすべてpublic_htmlにコピー
MAMPのデータをエックスサーバーに移行する作業に入ります。
先程接続が成功した画面から、移行先のドメインをクリックし、public_htmlがあることを確認します。
【MAMPで一つのサイトのみを作成している場合】
アプリケーション>MAMP>htdocsの中身をすべて移行先ドメインのpublic_htmlにコピー。
【MAMPで複数のサイトを作成している場合】
アプリケーション>MAMP>htdocs>’移行するサイト名’の中身をすべて移行先ドメインのpublic_htmlにコピー。
(ファイルの中身をすべて指定して、public_html内にドラッグ&ドロップでアップロードできます。)
少し時間がかかりますが、「アップロード完了」と表示されれば成功です。
エックスサーバーのデータベースにSQLデータをインポートする
今までの手順で、MAMPで作成したWordPressのデータはエックスサーバーに移行できました。
しかし、WordPressでは固定ページや投稿ページの情報をデータベース(MySQL)に保存してあるのでMAMPからエクスポートしたsqlファイルをエックスサーバーのデータベースにインポートする必要があります。
データベースから初期データを削除

まずはエックスサーバーのサーバーパネルから「データベース」>「phpmyadmin」をクリック。

上の画像のような画面になったら左のツリーから「移行先のDBの名前」をクリック。
上のタブメニューから「データベース」をクリック。

初期状態でデータが入っているので「すべてをチェックする」を押して「削除」を実行します。
※この初期データの削除を行わないとエラーが出て正常にインポートできない可能性があります。
MAMPからエクスポートしたsqlファイルをインポート
前の手順でエクスポートしておいたsqlファイルをエックスサーバーのデータベースにインポートします。

タブメニューの「インポート」からファイルを選択し、下の方の実行をクリック。
「✔正常にインポートされました」と出れば成功です。
SQLファイルの中身を置き換える
先程インポートしたsqlファイルの中身はローカル環境用の記述がされているので、そのまま本番サーバーにアップした今の状態では上手く行きません。
そのため、sqlファイルの中身を本番環境用に書き換えていきます。
sqlファイルの中身を書き換える方法にはいくつかありますが、Codexでも推奨されている方法は
「Serch Replace DB master」というファイルを使う方法です。
ダウンロードや使い方は以下の記事が参考になります。

正常に移行できているか確認
"サイトURL/wp-admin" にアクセスしてログインできれば成功です。
このときのログイン情報はMAMP(ローカル)で使用していたユーザー名とパスワードです。
トップページだけでなく、下層ページや投稿ページまでしっかり表示できるか確認してみましょう。
※「データベース接続確立エラー」と出る場合は、sqlファイルの書き換えかwp-config.phpの情報の書き換えに失敗している可能性が高いので再度確認してみてください。