ローカル環境で作成したWordPressサイトをレンタルサーバーへ移行する方法についてまとめています。ローカル環境はXAMPP/MAMP/DS216j(NAS)を使った環境を想定しています。レンタルサーバーはさくらインターネットを想定しています。
WordPressテーマ作成やカスタマイズなどでWebサイトを構築するときには、多くの方がテスト環境で動作を確認してから本番環境へ移行する作業を行っていると思います。その際にまるっと全ての環境をサーバーへ移行する作業についてまとめています。
レンタルサーバーのデータベースを新規作成
レンタルサーバーのサーバコントロールパネルにログインし、データベースの設定からデータベースの新規作成をクリックします。
データベース名(任意)を入力し、データベース文字コード(UTF-8)を選択したら「データベースを作成する」ボタンを押します。
データベース一覧に作成したデータベースが追加されたら完了です。
アップロードするWordPressフォルダにあるwp-config.phpと.htaccessファイルを修正
XAMPP/MAMP/DS216j(NAS)のWebフォルダから、アップロードするWordPressフォルダを一時的に作業するフォルダにコピーします。コピーするフォルダはどこでも問題ありません。
コピーしたWordPressフォルダの中にあるwp-config.phpをレンタルサーバー用に修正します。
【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にログインします。
レンタルサーバーへ移行するデータベースを選択し、「エクスポート」タブの「詳細-可能なオプションをすべて表示」を選択します。
テーブルがすべて選択されていることを確認し、「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENTを追加」にチェックして画面下部の「実行」ボタンを押します。
データベースファイル(.sql)がブラウザのダウンロード保存先に作成されます。
レンタルサーバーのデータベースにローカル環境のデータベースをインポート
レンタルサーバーのサーバコントロールパネルにログインし、データベースの設定から管理ツールログインをクリックし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
zipファイルを解凍すると「Search-Replace-DB-master」フォルダが格納されているので、こちらを「wp-config.php」と同階層にフォルダごと配置してください。
ブラウザで「http://サーバドメイン名/ Search-Replace-DB-master/index.php」にアクセスすると以下の画面が表示されます。
画面上部replace項目に検索ワードを入力し、with項目に置換したいワードを入力します。databese項目はwp-config.phpの項目を自動で入力されています。
すべて入力できたら、actions項目の「dry run」ボタンを押してまず試験的に実行します。すると以下のような画面が表示されます。
検索したテーブルと行の一覧が表示され、変更候補がリンク付きで表示されます。リンクをクリックすると変更箇所の詳細を表示することができます。
確認して問題なければ「live run」ボタンを押して実際の置換を実行します。実行後は置換結果として上記と同じ画面が表示されます。
レンタルサーバーにログインしてWordPressの動作を確認
WebブラウザからレンタルサーバーのWordPressにアクセスし、全ての固定ページ、投稿ページ、メニューなどに使われているリンクが正常に動作するか確認してください。
問題なく動作すればすべて完了です。お疲れ様でした。
関連: