WordPressサイトをローカルからサーバーへ

ローカル環境にWordPressで作ったサイトをレンタルサーバーへ移行する方法です。

WordPressで作ったサイトってどうなってるの?

ブログを個人で運営するのにもWordPressを使っている方は多いと思います。でもレンタルサーバーにWordPressを使ってWebサイトを作る前に、まずはクライアントのローカル環境にサイトを作って、動作やデザインを確認したいですよね。そうするとローカル環境に作ったサイトをレンタルサーバーへ移行しなければなりません。ちょっと不安になりますが、必要な作業をすれば簡単にサーバーへの移行ができます。

WordPressはフォルダ内のPHPプログラムで構築されていて、Webページに表示する内容はデータベースに保存されています。Webページをブラウザが表示するときに、PHPプログラムがそのページ内容をデータベースから取り出して、Webページを作っているのです。なお、表示する画像や動画などのメディアファイルはWordPressフォルダ内の決められた場所に保存されています。データベースにはその場所の情報だけが保存されます。

つまり、WordPressで作成したサイトをレンタルサーバーへ移行するには、動作するための全ての「WordPressフォルダ」と「データベースの情報」を移行すればいいのです。そして移行したサーバーの環境に合わせて一部の設定や情報を書き換えれば正しく動作します。

レンタルサーバーへ移行する方法

WordPressで作ったサイトをレンタルサーバーへ移行するには、以下の6つのステップを実行します。ここではレンタルサーバーは「さくらのレンタルサーバー」を使って説明します。

  1. レンタルサーバーにWordPressで作ったサイトが使うデータベースを新規作成
  2. 移行するWordPressフォルダにある設定ファイルを編集
  3. 移行するWordPressフォルダをレンタルサーバーへコピー
  4. ローカル環境でWordPressが使っているデータベースをエクスポート
  5. レンタルサーバーにデータベースをインポート
  6. URL情報を書換

レンタルサーバーにデータベースを新規作成

移行するWordPressが使用するデータベースを新規作成します。さくら管理コンソールにログインし以下のように作成します。

左メニューにある「データベースの設定」をクリックし、表示された画面にある「データベースの新規作成」をクリックします。

表示された画面で作成するデータベース名を入力して、「データベースを作成する」ボタンを押します。

次の画面でデータベース一覧に作成したデータベース名が表示されれば完了です。

“wp-config.php”と”.htaccess”ファイルを編集

XAMPPやMAMPなどを使ってローカル環境に作成しているサイトから、レンタルサーバーに移行するWordPressフォルダを一旦作業フォルダにコピーします。コピーしたフォルダ配下にある「wp-config.php」「.htaccess」ファイルを編集します。

wp-config.php編集

ファイルをエディタで開いてください。以下の項目を編集します。

/** WordPress のためのデータベース名 */
define('DB_NAME', 'databese_name');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'user_name');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'passowrd');
/** MySQL のホスト名 */
define('DB_HOST', 'host_name');

データベース名:

レンタルサーバーに新規作成したこのWordPressサイト用のデータベース名を入力します。

ユーザー名:

レンタルサーバーで利用するデータベースのユーザー名を入力します。

パスワード:

レンタルサーバーで利用するデータベースのパスワードを入力します。

ホスト名:

レンタルサーバーで利用するデータベースのホスト名を入力します。

(*例えば、さくらのレンタルサーバーの場合は、管理コンソールのデータベース設定画面にある「データベースサーバー」です)

上記の各項目はレンタルサーバーを契約したときに情報をもらっていると思うのでそれぞれ確認してください。

編集が終わればファイルを保存します。

.htaccess編集

このファイルはWebサーバーにApatcheを使用している場合に、WordPressフォルダの先頭フォルダにあるアクセス設定ファイルです。隠しファイルになっているので、表示できるようにしてファイルを開いてください。ここに移行したWordPressフォルダがWebページの先頭である設定をします。おそらくどのレンタルサーバーも「どのドメイン」が「どのフォルダ」なのかを紐付ける設定がされているかと思います。移行するWordPressフォルダもドメインの設定がされているかと思うので、以下のようにWebルートである設定をします。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

赤い部分が修正する行です。編集が終わればファイルを保存します。

WordPressフォルダをレンタルサーバーへコピー

上記の編集がされたWordPressフォルダをレンタルサーバーへコピーします。契約しているレンタルサーバーの方法に従ってアップロードすれば問題ないです。通常はFTPを使って転送するかと思います。フォルダは圧縮してから転送したほうが速くできますが、転送後の解凍方法が分からない場合は圧縮せず転送してもいいかと思います。

ローカル環境のデータベースをエクスポート

ローカル環境でWordPressで使っているデータベースをエクスポートします。

ローカル環境のphpMyAdminを開いてください。(XAMPPやMAMPの管理画面からアクセスできるかと思います)

phpMyAdminの「データベース」タブから、WordPressで使っているデータベースを選んでください。

選んだデータベースの「エクスポート」タブにある画面の、「可能なおプションをすべて表示」をチェックします。その下にあるテーブル全選択はチェックされていると思いますが、そうでなければチェックして全選択してください。

画面をスクロールして設定の中ほどにある「DROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENT/TRIGGERコマンドを追加する」にチェックしてください。

そして、画面一番下の「実行」ボタンを押してエクスポートします。エクスポートしたファイルは、ブラウザのダウンロードファイルを保存するフォルダに「.sql」という拡張子でファイルが保存されているかと思います。

レンタルサーバーにデータベースをインポート

先程エクスポートしたデータベースファイル(.sql)をレンタルサーバーのデータベースにインポートします。

レンタルサーバーのphpMyAdminを開いてください。さくらのレンタルサーバーの場合は以下のようにします。

さくら管理コンソールのデータベースの設定にある「管理ツールログイン」をクリックしてphpMyAdminを開きます。

「インポート」タブを選択して、インポートするファイルを選択します。選択し終わったら、画面下にある「実行」ボタンを押してインポートを始めます。

インポートが問題なく完了すると以下のように表示します。

URLの書き換え

WordPressで作ったサイトはデータベースに表示内容を保存しますが、その情報の関連付け(どのページの内容かなど)や、メディアファイルの格納場所など、URLとその配下のパスが同じようにデータベースに格納されています。ローカル環境にWordPressでサイトを作ると、例えば「http://localhost」のURLがデータベースの各所に保存されています。このURLをレンタルサーバーの環境に合わせて書き換えます。数多くあるデータを手動で書き換えるのは無理なので、無料のツールを使って書き換えます。

以下のサイトで提供されているスクリプトをダウンロードします。

【Webサイト】

Search and Replace for WordPress Databases Script

上記はスクリプトのサイトですが、ダウンロードはGitHubから行うので以下のURLからダウンロードします。

Search-Replace-DBスクリプトのダウンロード

ダウンロードしたzipファイルを解凍します。そのまま解凍するとおそらく「Search-Replace-DB」という名前のフォルダで解凍されているかと思います。そのフォルダごと全てWordPressフォルダの先頭フォルダにコピーします。

次に、ブラウザでサイトURLからこのフォルダにあるindex.phpを開きます。例えば、「http://hogehoge.jp/Search-Replace-DB/index.php」といった感じでURLを入力します。

そうすると、以下の画面が表示されて、検索するURLと置換するURLを入力できるようになります。URLを入力するとまずは、「dry run」で正しく検索して置換するか試してみます。

作業が始まると以下の画面となり、いくつ処理したか分かるようになってます。

問題なければ、今度は「live run」で実際に置換を実行します。結果、上記の画面と同じ処理結果が表示されれば処理が完了です。コピーしたSearch-Replace-DBフォルダを削除してください。

ドメイン名を変更するとき文字列の最後に”/”を入れずに置換したほうがスムースに全て置換できます(例:「http://localhost」)。データベースのwp_optionsにはWordPressサイトのホームアドレスが格納されていて、文字列最後に”/”がないためです。WordPressにログインできなくて「あれ?」と思いがちなので気を付けてください。また、「http://」なしのドメイン名だけで置換するとメールアドレスなどで使用しているドメイン名も「localhost」となるので、まずはURLで置換してから確認したほうがいいでしょう。レンタルサーバー環境をローカル環境へ移行する際も同じです。

動作確認

これで一連の作業は終わりです。ブラウザで移行したWordPressで作成したサイトが正しく表示されるか確認してみましょう。

(付録)サーバーからローカルへ

サーバーにあるWordPressで作成したサイトをローカル環境へ移行するには、上記の手順を逆に行えばできます。

 

「データベースのエクスポート」と「WordPressフォルダのコピー」については、サイトをバックアップするプラグインを利用すれば作業を短縮できます。本番環境でサイト運営をはじめると内容が日々更新されていきます。バックアップによる保護対策をすると思いますが、サイトのカスタマイズなどを行う際には一度ローカル環境へ移行して実施するのがよいでしょう。