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

2d0232e2ed9dbfbbc3eb129d2f921281_m

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

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

  1. サーバー上にデータベースを作る
  2. WordPressをサーバー用にコピーして、サーバー環境用に変更
  3. FTPでサーバー用に変更したWordPressをアップロード
  4. ローカルのphpmyAdminでデータベースエクスポート
  5. サーバーのphpmyAdminでデータベースをインポート
  6. インポートしたテーブルの内容をサーバー用に置換
  7. URLの変更

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

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

ログインしたら、左サイドメニューの「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・・・http://サーバー名/アップロードしたフォルダ名/

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

サイトからSearch and Replace for WordPress Databases Scriptをダウンロードします。
16_SearchandReplace


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


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

http://サーバー名/アップロードしたフォルダ名/Search-Replace-DB-master/
をひらくと下記画面が開きます。
18_SearchandReplace


database欄は、自動的に入っていました。
replaceにローカルURLの「http://localhost/WordPressフォルダ名/」をwithにサーバーURLの「http://サーバー名/アップロードしたフォルダ名/」を指定します。

infoScoop開発者ブログさんの中で、replaceにhttp(s)や/(スラッシュ)を付与しない方がいいみたいなことが書いてあったので、念のためhttp://以下を指定して私は置換しました。

replace・・・localhost/WordPressフォルダ名/
with・・・サーバー名/アップロードしたフォルダ名/

「dry run」をクリックすると、どれだけ変更する箇所があるかが一覧で表示されるだけで置換はされません。
「live run」をクリックすると「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

スポンサーリンク
ad
ad

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
ad