WordPressサイトをローカル環境から本番サーバーへ移行する

WordPressで制作したサイトを、本番サーバーへ移行する手順を解説します。
ローカルの開発環境としてXAMPPを前提としていますが、開発用に別サーバーを立てている場合も同様の手順で移行可能です。

移行するデータとしては、Webサイトファイルとデータベースファイルがあります。
どちらも移行前に若干の修正が必要になります。

【コンテンツ】

  1. 移行元のMySQLデータベースをエクスポートする
  2. エクスポートしたSQLファイルを修正する
  3. 移行先でSQLファイルをインポートする
  4. 移行先でデータベースユーザのアクセス権を設定する
  5. wp-config.phpの修正
  6. .htascessの修正
  7. Webサイトファイルを移行先へアップロードする
  8. WordPress管理画面にログインして各種設定を確認する
  9. うまく移行できない時のチェックポイント

【記事執筆時の環境】
WordPress 3.9
XAMPP 1.8.2
phpMyAdmin 4.1.9

移行元のMySQLデータベースをエクスポートする

phpMyAdminを起動しログインします。
ローカル開発環境でXAMPPを使用している場合は、XAMPP Control Panelで、MySQLモジュールの[Admin]ボタンをクリックすると起動できます。

XAMPP Control Panel

次にデータをエクスポートしますが、データベースごとエクスポートする方法とテーブルだけエクスポートする方法があります。

移行先サーバーでデータベースを新規作成できる場合は、データベースごとエクスポートしても構いません。
ただデータベースを新規作成できても、phpMyAdminからデータベースをインポートできなかったり、データベースが既に決まっている場合はテーブルだけエクスポートします。

ここでは移行先サーバーではデータベースを別途作成するとして、テーブルだけエクスポートしてみます。

phpMyAdminの左ペインから、エクスポートするデータベースをクリックします。
WordPress単独ではテーブルは11個含まれています。

wordpressテーブル一覧

[エクスポート]をクリックします。

エクスポートボタン

フォーマットを'SQL'にして、[実行]ボタンをクリックします。

テーブルエクスポート画面

使用しているブラウザによってその後の操作は違いますが、SQLファイルを保存します。

エクスポートしたSQLファイルを修正する

ファイルをテキストエディタで開きます。

ローカル環境でのドメインを移行先ドメインに置換します。

ローカル環境は、'http://localhost/wpsample'で構築しており、
移行先ドメインが、'http://example.com'だとしたら、
テキストエディタの置換機能を使い、
'http://localhost/wpsample'⇒'http://example.com'と一括して置換します。

インストールしているプラグインによっては、上記の処理だけではドメインを置換し切れない場合もあります。
そこで次に、'localhost'で検索して、置換する必要のある文字列を追加で置換します。

これまで私が確認したところ、
'http:¥¥/¥¥/localhost¥¥/インストールフォルダ名'や、
'|http|localhost|/インストールフォルダ名/'のケースがありました。

移行先でSQLファイルをインポートする

移行先サーバーで、phpMyAdminにログインします。
ここで、インポートするデータベースは既に作成されているものとします。

インポートするデータベースをクリックします。
[インポート]をクリックします。

インポートボタン

[ファイルを選択]ボタンをクリックしてSQLファイルを読み込ませ、[実行]ボタンをクリックします。

ファイルインポート画面

インポートが正常に終了すると、下記メッセージが表示されます。

インポート正常終了メッセージ

移行先でデータベースユーザのアクセス権を設定する

レンタルサーバーによっては、この操作はレンタルサーバーの管理画面から設定する場合もあります。またあらかじめ使用できるデータベースが決まっているレンタルサーバーの場合は、設定する必要はありません。

ここでは使用するデータベースを新規に作成していて、phpMyAdminからユーザアクセス権を設定する方法を説明します。

phpMyAdminのトップページに移動して、[ユーザ]をクリックします。
アクセス権を設定するユーザの、[特権を編集]をクリックします。

ユーザ一覧画面

[データベースに固有の特権]のエリアにあるリストをクリックして、データベースを選択します。

データベース選択画面

以下のようにチェックを入れて、[実行]ボタンをクリックします。

特権選択画面

wp-config.phpの修正

データベース名、データベースのユーザー名、データベースのパスワード、ホスト名の4か所を、移行先サーバーに合わせて修正します。

wp-config.phpの修正部分

マルチサイトの場合は、以下の部分も修正します。

マルチサイト修正部分

【補足】
移行先のサーバー環境によっては、テーマやプラグインの更新がうまくできないことがあります。その場合は、wp-config.phpの最後にFTP接続モードにしないための以下の記述を追加してみてください。

.htascessの修正

以下の部分を修正します。ドメイン直下に移行する場合は、'/'だけになります。

.htascess修正部分

Webサイトファイルを移行先へアップロードする

WordPressをインストールしたディレクトリ以下をすべて、移行先サーバディレクトリへアップロードします。

ファイルパーミッションはサーバー環境に合わせて変更する必要があるかもしれません。
アップロードした際のデフォルトでは、ファイルは'644'でディレクトリは'755'になっているケースが多いです。
このパーミッションでほとんど動作しますが、セキュリティを高めたいのであれば、wp-config.phpのパーミッションを'400'に変更するなどしてください。

WordPress管理画面にログインして各種設定を確認する

WordPress管理画面で各種設定を確認します。本番サーバーでは一般公開になりますから設定を変更する部分もあります。
以下は注意点です。

  • インストールしているプラグインの設定全般
  • [設定]-[表示設定]で、[検索エンジンがサイトをインデックスしないようにする]のチェックが外れていること
  • [設定]-[ディスカッション]でのコメント設定
  • [設定]-[投稿設定]での更新情報サービス

うまく移行できない時のチェックポイント

移行先のURLにアクセスしても、「データベース接続エラー」などが表示されてページが表示されなかったり、表示がくずれているケースがあります。
その時は以下をチェックしてみてください。

  • w-config.phpの中に記述しているデータベース名、ユーザー名、パスワード、ホスト名
  • 移行先データベースにユーザのアクセス権を正しく設定しているか
  • .htascessの中に記述しているパス
  • ファイルのパーミッション
  • エクスポートしたデータベースファイルにドメインの置換漏れはないか

スポンサーリンク

ページの先頭へ