ココログから自前 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) »