Linuxを日常的に使う実験ブログ

WordPressを新環境へ「まるごと」移転する方法

 2014-06-30

 Linux全般

こんにちは。今回のテーマはWordPressを新サーバーへ現在の環境を引き継いで移転する方法です。レンタルサーバーを変更したり、Local環境にもオンラインと同一環境を作りたい等の理由でWordPressを丸ごと引っ越したいという状況は結構ありますよね。 今回はLocal環境へWordPressを引っ越す方法で説明しますが、基本的にはオンライン上のサーバーでも変わりません。 (基本的にはLinuxユーザーを想定して書いていますが、基本的には他のOSも同じです) [adsense02]

準備

Localサーバーの準備

Ubuntu14.04にLAMP環境を導入する Arch LinuxにLAMP環境を導入する方法 を参考にしてください。 新サーバーがレンタルサーバーの方はLocal環境の準備は不要です。

phpMyAdminの準備

また、今回はMySQLの操作にphpMyAdminを使用します。 引っ越し元と引越し先、両方のサーバーにphpMyAdminを導入してください。 phpMyAdminの導入はLinuxにphpMyAdminをインストールする方法をご参考に導入してください。

新サーバーでのWordPress用ユーザー作成

レンタルサーバーを使用する場合はサーバー管理者から付与されると思いますが、Local環境の方は自分で作成しましょう。今回はLinuxにphpMyAdminをインストールする方法で作成した”wp-user”を使用します。

テーマ、画像データ、pluginのダウンロード

まず、引越し元の画像データとテーマをダウンロードしましょう。 引越し元のWordPressディレクトリから「wp-contents」をダウンロードします。今回はwp_tempディレクトリにダウンロードしました。 画面ではFTPソフトのgFTPを使っています。lolipopの場合はブラウザ上でFTPサービスを提供していますし、他のサービスでも同様だと思います。 01

データベースのエクスポート

引っ越し元のデータベースをエクスポートしましょう。WordPressのデータベースはMySQLですのでツールとしてはphpMyAdminを使います。お使いのサーバーにphpMyAdminが入っていない場合はLinuxにphpMyAdminをインストールする方法をご参考に導入してください。

エクスポート

引越し元サーバーのphpMyAdminにログインします。 Wordpressデータが入ったデータベースを選びエクスポートタブを選択します。エクスポートするデータベースを選択しましょう。 02 エクスポートする時のSQLファイルの名前をつけましょう。今回はmydataとしました。 08 オプションはデフォルト状態から変更していません。画像の通りです。 03 04 05 06 07 もし、CREATE DATABASE項目があればチェックを入れておきましょう。(詳しくは後ほど)

データベースの修正

ここから先は状況に応じて修正が変わりますので適宜修正してください。 ダウンロードしたSQLファイルをエディタで開きましょう。今回はvimで開きますがnanoでも構いません。しかしgeditやleafpadでは動作が重いこともありますのでご注意を。

$ cd wp_temp $ vim mydata.sql

最低限でもデータベース項目のCREATE DATABASEとUSEの項目は確認してください。この項目が作成されていなかったり、新サーバーのデータベースと食い違うとインポート時にエラーを起こします。

CREATE DATABASE `[データベース名]` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `[データベース名]`;

#1 データベース名の修正 インポート時に新規データベースを作成する場合 つまりインポートと同時に’wordpress_2’を作成し、そこに内容をインポートする場合です。この時にはデータベース項目にCREATE DATABASE文とUSE文が必要です。今回のケースでは以下のようにしました。

CREATE DATABASE `wordpress_2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `wordpress_2`;

もし、エクスポート時のデータベース名とインポート時のデータベース名が異なるときにはデータベース名を変更してください。今回はlolipopのデータベース名LAA048****-hw****からlocalのデータベース名wordpress_2に変更しますので、この修正を行いました。 インポート時に新規データベースを作成する場合 予め新規サーバーで空のデータベースを用意している方もいるでしょう。その場合にはCREATE DATABASE文は削除して下さい。データベース名が新旧で重複したときにエラーを起こします。 また、USEで用いるデータベース名は新規作成した空のデータベース名を用いてください。 #2 URLの変更 引っ越すことでURLが変更になる場合は以下のコマンドで書き換えましょう。 (エディタで書き換えてもOKです。)

$ sed -i ‘s|[旧URL]|[新URL]|’ [SQLファイル].sql

実行例: [bash] $ sed -i ‘s|http://note.kurodigi.com|http://localhost/wordpress|’ mydata.sql [/bash] #3 データベースファイルの接頭辞 例えば、引っ越し元の旧サーバーで接頭辞wp3_から始まるデータベースファイルを使用していて、新サーバーでは接頭辞をwp_に変更したいとう場合もあると思います。このような場合もSQLファイルを修正しておきましょう。実行例のみ表示しておきます。 実行例:[bash] $ sed -i ‘s|wp3_|wp_|’ mydata.sql [/bash]

次ページ:インポート編へ >>

データベースのインポート

SQLファイルの圧縮

エクスポートしたSQLファイルはそのままでは容量の問題で読み込めませんのでgzipで圧縮しましょう。

$ gzip mydata.sql

新サーバーへのインポート

新サーバー上のphpMyAdminにログインします。 「インポート」タグを選択します。この時「現在のサーバーへインポート」と表示されていることを確認してください。 「参照」で先ほど圧縮したmydata.sql.gzファイルを選択し、アップロードします。 09 「実行」を押してインポートしましょう。 前項の修正がうまくできていれば新たにwordpress_2データベースが作成され問題なくインポートされるはずです。 10 次の情報は次のステップで必要な情報ですのでメモを取っておきましょう。 1.ユーザー名(今回はwp-user レンタルサーバーの場合は管理者が決める) 2.パスワード(ユーザー作成時に決めたパスワード) 3.データベース名(今回はwordpress_2) 4.接頭辞(wp_やwp3_等)

新サーバーにwordpressを導入

既に新サーバーにWordPressを導入している場合

wordpressを導入したディレクトリのwp-config.phpを編集しましょう。 ここで入力する情報はインポートした時に確認した情報です。注意してください。

新規にWordPressを導入する場合

Linuxローカル環境にWordPressを導入する方法を参考にwordpressを導入してください。記事はlocal環境への導入ですので、オンライン上のサーバーの場合はサーバー情報の部分を変えてください。 新規にwp-config.phpファイルを作ることになると思いますが、前項の情報を入力してください。

テーマ、画像データ、pluginの導入(重要)

これを忘れると後で真っ白なページとにらめっこすることになります。忘れないように。今回はwp_tempディレクトリに予めダウンロードしておいた「wp-contents」ディレクトリを新サーバーの「wp-contents」ディレクトリとそっくり入れ替えます。

新サーバーでの動作確認

さて、あと一息です。ようやく動作確認です。 新サーバーのWordPressにアクセスしましょう。今回はhttp://localhost/wordpressに導入しましたので、http://localhost/wordpress/wp-admin/にアクセスします。 ログイン画面が出ますので従来のユーザー名とパスワードでログインできることを確認してください。 ログイン後は従来の環境が引き継がれているか動作確認をしてください。 [adsense]