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

ローカル環境で作成したWordPressサイトをレンタルサーバーへ移行する方法についてまとめています。ローカル環境はXAMPP/MAMP/DS216j(NAS)を使った環境を想定しています。レンタルサーバーはさくらインターネットを想定しています。

WordPressテーマ作成やカスタマイズなどでWebサイトを構築するときには、多くの方がテスト環境で動作を確認してから本番環境へ移行する作業を行っていると思います。その際にまるっと全ての環境をサーバーへ移行する作業についてまとめています。

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

レンタルサーバーのサーバコントロールパネルにログインし、データベースの設定からデータベースの新規作成をクリックします。

さくらデータベース作成

データベース名(任意)を入力し、データベース文字コード(UTF-8)を選択したら「データベースを作成する」ボタンを押します。

さくらデータベース作成2

データベース一覧に作成したデータベースが追加されたら完了です。

さくらデータベース作成3

アップロードするWordPressフォルダにあるwp-config.phpと.htaccessファイルを修正

XAMPP/MAMP/DS216j(NAS)のWebフォルダから、アップロードするWordPressフォルダを一時的に作業するフォルダにコピーします。コピーするフォルダはどこでも問題ありません。

WPコピー

コピーしたWordPressフォルダの中にあるwp-config.phpをレンタルサーバー用に修正します。

WP_config修正

【wp-config.phpの修正】

/** WordPress のためのデータベース名 */
define('DB_NAME', 'hogehoge_wordpress');←レンタルサーバーで作成したデータベース名を入力
/** MySQL データベースのユーザー名 */
define('DB_USER', 'hogehoge');←データベースのユーザー名を入力
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'xxxxxxxx');←データベースのパスワードを入力
/** MySQL のホスト名 */
define('DB_HOST', '********.db.sakura.ne.jp');←データーベースサーバー名を入力
【重要】
※レンタルサーバーとローカル環境のディレクトリ構成が違う場合は、.htaccessファイルも修正して下さい。このファイルはWordPressで構築したWebサイトのルートにあります。隠しファイルなので表示できるようにしてエディタなどで修正してください。

例えば、ローカル環境は「http://localhost/hogehoge」をルートとしてWebサイトが表示されていると、ファイル内は以下の記載になります。

【.htaccessの修正】

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

レンタルサーバーへ移行する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のサイトを構築するときは、独自ドメインもしくはサブドメインをルートとして配置していると思いますが、ご自身の構築環境に合わせて「.htaccess」ファイルを修正してください。

WordPressフォルダのアップロード

これまでの修正ができたらWordPressフォルダをアップロードする為にフォルダをまとめてZIP圧縮します。

そして、ターミナルやソフトを使って圧縮したファイルをサーバーにアップロードします。(バイナリ転送モード推奨)

アップロード場所はWordPressフォルダを配置するWebルートになります。unzipコマンドで解凍するとフォルダとファイルが展開されます。

#unzip [圧縮ファイル名]

オプション

-c 標準出力に展開結果を表示します。
-d 指定ディレクトリにファイルを展開します。
-l アーカイブの中身を表示します。
-p 展開結果をパイプ(|)に渡します。
-t アーカイブの展開テストします。
-v アーカイブの中身とその詳細を表示します。
-z アーカイブのコメントを表示します。

*その他ZIPコマンドの詳細はこちらを参照ください。

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

XAMPP/MAMP/DS216j(NAS)のphpMyAdminにログインします。

phpMyAdminログイン

レンタルサーバーへ移行するデータベースを選択し、「エクスポート」タブの「詳細-可能なオプションをすべて表示」を選択します。

エクスポート1

テーブルがすべて選択されていることを確認し、「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENTを追加」にチェックして画面下部の「実行」ボタンを押します。

エクスポート2

データベースファイル(.sql)がブラウザのダウンロード保存先に作成されます。

レンタルサーバーのデータベースにローカル環境のデータベースをインポート

レンタルサーバーのサーバコントロールパネルにログインし、データベースの設定から管理ツールログインをクリックしphpMyAdminログイン画面を表示します。

さくらphpMyAdmin

さくらphpMyAdminログイン

phpMyAdmin画面左サイドメニューから先ほど作成したデータベースを選択します。

phpMyAdmin画面上部メニューにある「インポート」を選択し、「ファイルを選択」ボタンを押して先ほどエクスポートしたレンタルサーバーのデータベースファイル(.sql)を選択しファイルの文字セットでuft-8を設定してページ下部にある「実行」ボタンを押します。

データベースインポート

ローカル環境のデータベースの内容が、サーバーに作成した空のデータベースにコピーされます。

ローカルURLを本番URLに書き換え

スクリプトを使用しインポートしたデータベース内のローカルURLを本番URLに書き換えます。

ここではDBを書き換えるスクリプトを利用します。以下のサイトにアクセスし「DOWNLOAD V3.1.0」を押下し「Search-Replace-DB-master.zip」をダウンロードします。

Search and Replace for WordPress Databases Script

データベース置換1

zipファイルを解凍すると「Search-Replace-DB-master」フォルダが格納されているので、こちらを「wp-config.php」と同階層にフォルダごと配置してください。

ブラウザで「http://サーバドメイン名/ Search-Replace-DB-master/index.php」にアクセスすると以下の画面が表示されます。

データベース置換2

画面上部replace項目に検索ワードを入力し、with項目に置換したいワードを入力します。databese項目はwp-config.phpの項目を自動で入力されています。

すべて入力できたら、actions項目の「dry run」ボタンを押してまず試験的に実行します。すると以下のような画面が表示されます。

データベース置換3

検索したテーブルと行の一覧が表示され、変更候補がリンク付きで表示されます。リンクをクリックすると変更箇所の詳細を表示することができます。

確認して問題なければ「live run」ボタンを押して実際の置換を実行します。実行後は置換結果として上記と同じ画面が表示されます。

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

レンタルサーバーにログインしてWordPressの動作を確認

WebブラウザからレンタルサーバーのWordPressにアクセスし、全ての固定ページ、投稿ページ、メニューなどに使われているリンクが正常に動作するか確認してください。

問題なく動作すればすべて完了です。お疲れ様でした。

関連:

Vagrant+VCCWの使い方を考える

シェアする