当サイトの記事には広告が含まれている場合があります

ローカルのWordPressをサーバーに移行する

2d0232e2ed9dbfbbc3eb129d2f921281_m
 
ローカルである程度設定や記事投稿が完了したら、どこからでも閲覧できるようにサーバーへ移行させます。

4歩目のニワトリさんのブログを参考にして一度移行したことがあって成功したのですが、よくよくブログを詳しく見ると、エクスポートしたsqlをエディタでサーバー用に一括置換するのがNGとなっていたので、WEBCARE ARCHIVEさんのブログも参考にして移行しました。
上記2つのブログを手順をひとまとめにしたものをメモしておきます。

スポンサーリンク

サーバー上にデータベースを作る

私が使用しているレンタルサーバーはロリポップ!なので、ロリポップ上でのデータベース操作になります。
他のレンタルサーバーご利用の方は、そのサーバー環境に合わせて作業してください。

ログインしたら、左サイドメニューの「WEBツール」-「データベース」を選択する。
01_lolipop

「作成」をクリックする。
02_lolipop

 
作成するサーバーを選択し、好きなデータベース名とパスワードを入力します。
後程使うので、覚えておいてください。作成後も確認することが可能です。
03_lolipop

 
「【指定したデータベース名】でデータベースを作成して宜しいですか?」のポップアップメッセージが表示されるので「OK」をクリックします。
04_lolipop

 
「データベースを作成しました」のメッセージと指定したパスワードが表示されるので「OK」をクリックします。
05_lolipop

 
新しくデータベースが作成されました。
06_lolipop

目次に戻る

WordPressをサーバー用にコピーして、サーバー環境用に変更

次に、ローカルのWordPressをサーバー環境用に微修正するので、バックアップもかねてコピーします。コピー先はどこでも好きなところで大丈夫です。

07_WordPress

コピーしたWordPressのwp-config.phpをサーバー用に変更します。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', '●●●●●-●●●●●');

/** MySQL データベースのユーザー名 */
define('DB_USER', '●●●●●');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '●●●●●');

/** MySQL のホスト名 */
define('DB_HOST', '●●●●●');

 
●●●●●の部分は、ご自身で作成した値を設定します。ロリポップの「データベース」-「操作する」から確認可能です。
MySQL のホスト名には、サーバー欄の内容値を設定します。パスワードは、「パスワード確認」から確認できます。
08_lolipop

目次に戻る

FTPでサーバー用に変更したWordPressをアップロード

FTPツール※1を使用してサーバーにアップロードします。
※1私は主にFFFTPを使用しています。
私は契約しているレンタルサーバー直下にWordPressフォルダごと格納しました。
09_ftp

目次に戻る

ローカルのphpmyAdminでデータベースエクスポート

ローカル内のデータベース(WordPress投稿記事等はデータベース内にあります。)をsql形式で吐き出します。

ローカルのXAMPPコントロールのMySQL行の「Admin」をクリックしてphpMyAdminを立ち上げます。
10_xampp

 
該当のデータベースを選択し、「エクスポート」をクリックします。
11_xampp

 
エクスポート方法の「詳細」をクリックする。
12_xampp

 
「DROP TABLE / VIEW /PROCEDURE / FUNCTION / EVENT コマンドを追加する」にチェックを入れて「実行」をクリックするとsqlファイルがダウンロードされます。
13_xampp

目次に戻る

サーバーのphpmyAdminでデータベースをインポート

サーバーのphpMyAdminを開いて「インポート」をクリックします。
14_xampp

 
「ファイルを選択」して先ほどエクスポートしたsqlファイルを選択し、「実行」をクリックする。
15_xampp

これでサーバーにデータベースがインストールされました。

目次に戻る

インポートしたテーブルの内容をサーバー用に置換

インポートしたデータベースはローカル用のURLなので、サーバー用のURLに変換します。

ローカルURL・・・http://localhost/WordPressフォルダ名/
サーバーURL・・・https://ドメイン名/

Search and Replace for WordPress Databases Scriptというスクリプトを使ってURL変換を行います。

サイトからSearch and Replace for WordPress Databases Scriptをダウンロードします。
ダウンロード手順は下記の通り。

  1. 必要事項を入力
  2. 届いたメールに記載のURLをクリックしてダウンロード

寄付金のところは「Other or nothing」にすると無料でダウンロードできます。

 
ダウンロードしたSearch and Replace for WordPress Databases Scriptを解凍し、本番環境にアップロードします。
17_SearchandReplace

 
本番環境にアップロードしたファイルにアクセスします。

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」をクリックします。

19_SearchandReplace

 
置換が終了したら「delete me」を押してSearch and Replace for WordPress Databases Scriptを削除します。
20_SearchandReplace

フォルダなど一部のファイルが残っていたので、一応FFFTPで直接削除しておきました。

目次に戻る

URLの変更

最後にサーバー用のphpMyAdminでテーブルの「wp_options」を修正します。
先ほどSearch and Replace for WordPress Databases Scriptを使用してデータ変換した際に、「localhost/WordPressフォルダ名/」で指定したのでフォルダ名の後のスラッシュで置換対象にならなくなってしまったので、直接テーブル内データ「siteurl」「home」をサーバー用URLに変更しました。

21_SearchandReplace

目次に戻る

最後に

私はローカル環境に合わせて「.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

目次に戻る

くるりん

新入社員の頃にシステムエンジニアの会社に入社。その後、WEB制作系の仕事に転職しました。

くるりんをフォローする
WordPress
スポンサーリンク
くるりんをフォローする
Memorandums