2015/04/16

Wordpressサイト移行手順(さくらVPSの場合)

さくらVPSの場合

手順(ドメイン同じでサーバ移動の場合)
  1. 移行先サーバにてssh,ftp,iptables,apache,php mysqlのインストールと設定、ユーザの追加など
    ※それぞれ設定、バージョンは旧サーバ、新サーバともに合わせる。既存ワードプレスサイトに合わせたバージョンをインストールする。
  2. 移行前Wordpressのプログラムを一式ダウンロード, ftp or scp or rsync。
  3. 移行前データベースのエクスポート, phpmyadminで、コンソール上でも
  4. 移行先サイトのドキュメントルートにWordpressのプログラムを一式アップロード
  5. 移行先データベースの新規作成(既存と同名で、照合順序はutf8-general-ci)、3でエクスポートしたSQLファイルをインポート
  6. 移行先URLへアクセス、問題なく表示されることを確認
  7. ネームサーバの編集、ドメインのゾーン編集、AレコードのIPを新サーバのIPに変更(プラスTTL:60(一分)と短めに変更)
  8. 既存ワードプレスを確認したい場合設定変更, 以下詳細
  9. 最終確認

他のサーバの場合

レンタルサーバでfutoka,Xserver,hetemlなどの場合、標準でLAMP環境が構築されているので、手順2からでよい

ドメイン同じでサーバが変更されているかの確認

手順7の後、一分ほどで新サーバで確認できます。nslookup example.com で確認

問題がある場合

移行先URLにアクセスして、TOPページは表示されるが、パーマリンクの設定を/%category%/%postname%/のようなカスタム構造にしていて、他記事のページが404 Not Foundでかつ、リンクが文字化けする場合

Apacheのmod_rewriteモジュールの確認

# grep mod_rewrite /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
# find / -name mod_rewrite.so -print
/usr/lib64/httpd/modules/mod_rewrite.so
あれば問題なし

Rewrite設定の確認

.htaccessが以前と同じ状態であれば問題なし
文字コードはUTF-8で保存されているか。
パーミッションは604となっているか。

httpd.confの確認

 "/var/www/html">
    AllowOverride None 

となっていればNoneをAllに変更する
 "/var/www/html">
    AllowOverride All

これで.htaccessの設定が有効となる

既存のサイトも閲覧したい場合

ドメインの向き先を変更した後だと、既存ワードプレス側の設定を変更しないと見れません。
以下SQLを既存サイト(http://ホスト名/phpmyadmin/)で実行
#wordpressのドメインの変更
UPDATE wp_options SET option_value =
REPLACE (option_value, 'old_url', 'new_url')
WHERE option_name = 'home' OR option_name = 'siteurl';

#記事のリンクの変更
UPDATE wp_posts SET guid = REPLACE (guid, 'old_url', 'new_url');

#記事内のURLの変更
UPDATE wp_posts SET post_content =
REPLACE  (post_content, 'old_url', 'new_url');

#画像パスの変更
UPDATE wp_posts SET post_content =
REPLACE (post_content, 'src="old_url', 'src="new_url');

UPDATE wp_posts SET  guid =
REPLACE (guid, 'old_url', 'new_url')
WHERE post_type = 'attachment';

#各投稿メタ情報を変更
UPDATE wp_postmeta SET meta_value =
REPLACE (meta_value, 'old_url','new_url');
それぞれold_url, new_urlは書き換えてください。