ローカルである程度設定や記事投稿が完了したら、どこからでも閲覧できるようにサーバーへ移行させます。
4歩目のニワトリさんのブログを参考にして一度移行したことがあって成功したのですが、よくよくブログを詳しく見ると、エクスポートしたsqlをエディタでサーバー用に一括置換するのがNGとなっていたので、WEBCARE ARCHIVEさんのブログも参考にして移行しました。
上記2つのブログを手順をひとまとめにしたものをメモしておきます。
サーバー上にデータベースを作る
私が使用しているレンタルサーバーはロリポップ!なので、ロリポップ上でのデータベース操作になります。
他のレンタルサーバーご利用の方は、そのサーバー環境に合わせて作業してください。
ログインしたら、左サイドメニューの「WEBツール」-「データベース」を選択する。
作成するサーバーを選択し、好きなデータベース名とパスワードを入力します。
後程使うので、覚えておいてください。作成後も確認することが可能です。
「【指定したデータベース名】でデータベースを作成して宜しいですか?」のポップアップメッセージが表示されるので「OK」をクリックします。
「データベースを作成しました」のメッセージと指定したパスワードが表示されるので「OK」をクリックします。
▲ 目次に戻る
WordPressをサーバー用にコピーして、サーバー環境用に変更
次に、ローカルのWordPressをサーバー環境用に微修正するので、バックアップもかねてコピーします。コピー先はどこでも好きなところで大丈夫です。
コピーしたWordPressのwp-config.phpをサーバー用に変更します。
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', '●●●●●-●●●●●');
/** MySQL データベースのユーザー名 */
define('DB_USER', '●●●●●');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', '●●●●●');
/** MySQL のホスト名 */
define('DB_HOST', '●●●●●');
●●●●●の部分は、ご自身で作成した値を設定します。ロリポップの「データベース」-「操作する」から確認可能です。
MySQL のホスト名には、サーバー欄の内容値を設定します。パスワードは、「パスワード確認」から確認できます。
▲ 目次に戻る
FTPでサーバー用に変更したWordPressをアップロード
FTPツール※1を使用してサーバーにアップロードします。
※1私は主にFFFTPを使用しています。
私は契約しているレンタルサーバー直下にWordPressフォルダごと格納しました。
▲ 目次に戻る
ローカルのphpmyAdminでデータベースエクスポート
ローカル内のデータベース(WordPress投稿記事等はデータベース内にあります。)をsql形式で吐き出します。
ローカルのXAMPPコントロールのMySQL行の「Admin」をクリックしてphpMyAdminを立ち上げます。
該当のデータベースを選択し、「エクスポート」をクリックします。
「DROP TABLE / VIEW /PROCEDURE / FUNCTION / EVENT コマンドを追加する」にチェックを入れて「実行」をクリックするとsqlファイルがダウンロードされます。
▲ 目次に戻る
サーバーのphpmyAdminでデータベースをインポート
サーバーのphpMyAdminを開いて「インポート」をクリックします。
「ファイルを選択」して先ほどエクスポートしたsqlファイルを選択し、「実行」をクリックする。
これでサーバーにデータベースがインストールされました。
▲ 目次に戻る
インポートしたテーブルの内容をサーバー用に置換
インポートしたデータベースはローカル用のURLなので、サーバー用のURLに変換します。
ローカルURL・・・http://localhost/WordPressフォルダ名/
サーバーURL・・・https://ドメイン名/
Search and Replace for WordPress Databases Scriptというスクリプトを使ってURL変換を行います。
サイトからSearch and Replace for WordPress Databases Scriptをダウンロードします。
ダウンロード手順は下記の通り。
- 必要事項を入力
- 届いたメールに記載のURLをクリックしてダウンロード
寄付金のところは「Other or nothing」にすると無料でダウンロードできます。
ダウンロードしたSearch and Replace for WordPress Databases Scriptを解凍し、本番環境にアップロードします。
本番環境にアップロードしたファイルにアクセスします。
http://サーバー名/アップロードしたフォルダ名/Search-Replace-DB-master/
をひらくと下記画面が開きます。
database欄を入力して「Test connection」をクリックしてつながることを確認します。
replaceにローカルURLをwithにサーバーURLを指定します。
replace・・・http://localhost/WordPressフォルダ名
with・・・https://ドメイン名
infoScoop開発者ブログさんの中で、replaceにhttp(s)や/(スラッシュ)を付与しない方がいいみたいなことが書いてありました。http://からhttps://に変更したかったのでhttp://から指定して私は置換しました。
「Do a safe test run」をクリックすると、どれだけ変更する箇所があるかが一覧で表示されるだけで置換はされません。
「Search and Replace」をクリックすると「Are you absolutely ready to run search/replace?~」のメッセージが表示されるので、「OK」をクリックします。
置換が終了したら「delete me」を押してSearch and Replace for WordPress Databases Scriptを削除します。
フォルダなど一部のファイルが残っていたので、一応FFFTPで直接削除しておきました。
▲ 目次に戻る
URLの変更
最後にサーバー用のphpMyAdminでテーブルの「wp_options」を修正します。
先ほどSearch and Replace for WordPress Databases Scriptを使用してデータ変換した際に、「localhost/WordPressフォルダ名/」で指定したのでフォルダ名の後のスラッシュで置換対象にならなくなってしまったので、直接テーブル内データ「siteurl」「home」をサーバー用URLに変更しました。
▲ 目次に戻る
最後に
私はローカル環境に合わせて「.httaccess」を変更してしまったので、サーバー移行した時にディレクトリ階層が合わなくなってしまいました。
もしうまくいかない方は、.httaccessを確認してみてください。
WordPressをルートディレクトリにインストールしている場合
# 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」というサブディレクトリにインストールしている場合
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
▲ 目次に戻る