Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« KMmacro (その1) | トップページ | KMmacro (その2) »

2013-03-31

WordPress のサーバ移行

ココログから自前 WordPress への移行準備をすすめてます。

これまで自前の VPS 上で WordPress の構築トライアルしていたのですが
(エラーログとか見られるので便利)、最終的には LaCoocan で運用したいので、
実際に LaCoocan 上で WordPress が動くか確認してみました。
(※ "LaCoocan" は @nifty の共有 Web サーバサービス)

移行作業でいくつかノウハウが得られたので、メモしておきます。


今回の環境は次のような構成です:

    移行元: VPS (Virtual Private Server) / CentOS 5 / Apache
    移行先: LaCoocan (@nifty の共有サーバ)


ちなみに、移行先の LaCoocan では Apache の mod_rewrite モジュールが
使えないので、Permalink (固定リンク)を変更しないといけない場合があります。
というか、デフォルト以外の設定にしている場合はたぶんダメです。
投稿記事中のリンクも書き換えないといけないので、かなり面倒です‥‥
(※ Permalink の変更は以下の手順には含まれていません)


さて、今回の移行手順は、ざっくり言うと三段階になります。

    1. 移行先サーバで MySQL が使えるようにしておく。
    2. WordPress 関連ファイル一式を移行。
    3. MySQL データベースを移行。

データベースの移行でちょっと罠がありました(後述)。
ちなみに、最後の手順が終わるまで、移行先の WordPress の URL に
アクセスしないほうが安全かと(単にエラーになるだけだと思いますが)。


以下、詳細です。

    1-1. LaCoocan でデータベースを作成しておく。

        ⇒ http://homepage.nifty.com/help/manage/options/db.htm

        すでに作成済みならこの手順は不要です。
        ちなみに、LaCoocan ではアカウントごとに1個しかデータベースは作れませんが、
        DB テーブルの prefix を変えれば問題になることはないと思われます。


    1-2. LaCoocan で phpMyAdmin が使えるようにしておく。

        MySQL のデータベースをインポートするためです。
        自分でインストールしてもいいですが、今回は LaCoocan の
       「簡単インストーラー」サービスを使いました。カンタン!

        ⇒ http://homepage.nifty.com/help/webapps/index.htm#P10


    2-1. 元サーバの WordPress フォルダを丸ごと FTP ダウンロードしておく。

        てきとーな FTP/SFTP ソフトを使ってください。
        .htaccesss とか .htpasswd とか(あれば)忘れずに。


    2-2. もしあれば、.htaccess から mod_rewrite の記述を削除。

        前述の通り、LaCoocan は mod_rewrite が使えません。
        もともと .htaccess が無ければこの手順は不要です。
        あるとしたら、ダウンロードした最上位のフォルダ
        (WordPress ルートフォルダ)だと思います。

    2-3. WordPress 設定ファイル wp-config.php を編集

        'DB_NAME' と 'DB_USER' と 'DB_PASSWORD' と 'DB_HOST' を
        LaCoocan のデータベース設定に合わせて変更してください。


    2-4. フォルダを丸ごと LaCoocan に FTP アップロード。

        てきとーな FTP/SFTP ソフトを使ってください。
        .htaccesss とか .htpasswd とか(あれば)忘れずに。
        ファイルのパーミッション(アクセス権限)は 644 で OK です。
        (.htaccesss.htpasswd だけは 604 のほうが安全かも?)


    3-1. 元サーバの MySQL データベースのダンプを取得。

        ⇒ データベースのバックアップ - WordPress Codex 日本語版

        今回は VPS ということでシェルのコマンドラインが使えたので、
        mysqldump コマンドで取得しました(ついでに gzip 圧縮)。

            # mysqldump --add-drop-table --user=ユーザ名 -p データベース名 | gzip > dump.sql.gz

        これで作られた dump.sql.gz を FTP/SFTP でダウンロードすれば OK です。

        あるいは、phpMyAdmin でエクスポートしてもかまいません。


    3-2. LaCoocan の MySQL データベースにインポート。

        手順 1-2 で設定しておいた phpMyAdmin で dump.spl.gz をインポートします。

        ⇒ データベースの復元 - WordPress Codex 日本語版


    3-3. データベースに記録されている旧 URL を新 URL に置き換える。

        ここが今回の記事のハイライト!

        Codex 日本語版の手順では、dump.sql をテキストエディタで開いて一括置換する、
        と書かれていますが、それだと問題が生じる場合があるようです。
        なぜなら、「PHP の文字列」(文字列の長さが先頭に付いたデータ)として
        データベースに格納されている場合に、データの整合性がくずれてしまうから。

        ⇒ http://webcre-archive.com/2012/10/04/wordpress-db-url-replace/

        そこで、本家 Codex で推奨されているスクリプトを使います。
        (Search and Replace for WordPress Databases Script)

        ⇒ WordPress Serialized PHP Search Replace Tool - Interconnect IT

        使い方はカンタンで、スクリプトを新サーバにアップロードして、ブラウザからその
        ファイルの URL にアクセスして、新旧 URL を入力するだけ。


        3-3-1. 上記 URL からスクリプト(zip ファイル)をダウンロードしてくる。

        3-3-2. zip ファイルを展開する("searchreplacedb2.php" というファイルができる)。

        3-3-3. "searchreplacedb2.php" を別の名前に変更する。"searchreplacedb2-hogehoge.php" とか。

        3-3-4. そのファイルを新サーバにアップロードする。 ※旧サーバではなく新サーバです

            WordPress ルートフォルダ(wp-config.php のあるフォルダ)に置いてください。

        3-3-5. ブラウザからそのファイルの URL にアクセス。

        3-3-6. 「wp-config.php の設定を読み込むか?」と聞かれるので、そのまま "Submit"。

        3-3-7. データベースの設定を確認されるので、そのまま "Submit DB details"。

            初期値として wp-config.php から読み取った設定が記入されているので、変更不要。

        3-3-8. 変更するテーブルを聞かれるので、全選択のまま "Continue"。

        3-3-8. 「ちゃんと必要なテーブルを選択したか?」と確認ダイアログが出るので、"OK"。

        3-3-9. 置換する文字列(旧 URL と新 URL)を入力して、"Submit Search string"。

            たとえば、

                Search for (case sensitive string):
                    http://old.example.com/foo/bar/

                Replace with:
                    http://new.example.com/

            のように入力すればよい。

        3-3-10. 「ホントに置換してよい?」と確認ダイアログが出るので、"OK"。

        3-3-11. "Completed" と書かれたページが出れば成功!

        3-3-12. ここで使ったファイル(3-3-4 でアップロードしたファイル)を削除。

            思わぬセキュリティホールになる可能性があるので、忘れずに削除!


手順は以上。


補足その1。
LaCoocan では mod_write が使えないので、Pretty Permalink は使えません。
次善の策である PATHINFO ("Almost Pretty") を使います。
URL に "/index.php/" と入るのがカッコ悪いですが‥‥


補足その2.
Permalink の設定で %postname% を使っていると、日本語タイトルの記事が表示できません。
URL に日本語が含まれていると LaCoocan ではエラーになります。
VPS だと動いていたので、LaCoocan の Web サーバの問題かもしれません。
とりあえず、Permalink の設定で %postname% を使うのをあきらめました‥‥


以上、ご参考まで。

« KMmacro (その1) | トップページ | KMmacro (その2) »