閲覧数:172 views
あなたが今、読んでいるカテゴリー:
覚書
開発用のサーバから運用サーバへWordPressを移行する作業(もちろんドメイン変更を伴う)を行うことがありました。自分用の覚書としてですが、もしかしたら、サーバの引っ越し作業の参考くらいにはなるかもしれません。
開発用のサーバから実際に運用するサーバに移行する際の大まかな手順
開発用サーバで行うこと
- MySQLデータベースのエクスポート
- 開発用のサーバからWordPressのディレクトリ一式をFTPを使ってダウンロード。FFFTPは転送速度が遅いので、こういう時はFileZilla Clientを使う
運用サーバで行うこと
- 客先のデータが既に存在する場合は、事前にMySQLデータベースのバックアップを取っておく
- .htaccessで自分のIP意外、メンテナンスページに飛ばすようにしておく (※1)
- MySQLデータベースのインポート
- WordPressの一式をアップロード
- wp-config.phpを適切に書き換える
- ドメイン部分のデータベースの書換え(※2)(searchreplacedb2を使う)
- searchreplacedb2を削除する(※3)
- 開発時はWordPressの設定でGoogleにクロールさせない用に指定( noindex )して作業しているはずなので、最後にGoogleインデックスするように変更
- .htaccessからメンテナンスページへ飛ばす設定を削除、及びメンテナンスページを削除
という作業で完了します。
注釈
(※1)この際503ステータスを返すようにしておく。404を返すような状態が続くと検索順位に影響がでることになる
(※2)myPhpAdminで直接変更しない理由は、シリアライズ化されたデータが壊れないようにするため。以下、参考サイト。
http://を置換対象に含めてしまうと、メールアドレスの部分が置換されないので、ドメイン単位で置換したほうが吉。
(※3)DBの内容を置換するスクリプトなので残したままだと、そりゃハイパー危険。.htaccessで自身のIP意外は叩けないように保険をかけておくのがベスト
色々と問題が発生
いつもはこれでうまくいっていたのだが今回は開発用サーバと運用サーバの環境が違うということで色々と問題発生。今回は
- さくらレンタルサーバ スタンダードプラン → ロリポップ チカッパプラン
への移行作業で、引越し後色々と問題発生。
ロリポップの公開フォルダの設定ができない
本当はWordPress用のディレクトリを公開フォルダに設定しようとしていたのですが、何回やっても、何回やっても、公開ディレクトリが変更されないんですよ。これ根本の原因不明です。いくら設定しても全然反映されなく、1時間いらい待っても反映されなかったのでので、ルートディレクトリにindex.phpを配置し、requireの部分を書き換えて対応(今回は得にフォルダ構成を気にする必要はなかったので)
index.php
1 2 |
//require( dirname( __FILE__ ) . 'wp-blog-header.php' ); ←これをコメントアウトして、以下に書換え。 require( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' ); // wordpressというディレクトリにwordpress一式を配置した場合 |
今後、ロリポップサーバは使いたくないです。
シンタックスエラーが発生した
「テストサーバではうまく動いていたのになぜ!?」
という事態に陥りました。シンタックスエラーが発生しているソースは以下のような部分。
1 |
get_the_category()[0]; |
PHPのバージョンが古いのが原因でした。PHP5.3ではこのコードは動いてくれないようです。既にPHPの5.3までのサポートは終了しているので、レンタルサーバの管理画面からPHPバージョンを5.3→5.4に変更することで解決しました。
確認ポイント
テスト用サーバでうまく動いていて、運用サーバでうまく動作しない場合は、PHPのバージョンが開発用のバージョンと一致しているか確認する。というか、テスト環境と本番環境は一緒にしておくべき。
たむらさん、最後に一言
この記事ちゃんと纏めたいなぁ。いつかまとめようとは思う。おわり。