環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。

supilog
すぴろぐ

【自分メモ】WordPressサーバー移設のチェック

【自分メモ】WordPressサーバー移設のチェック

本記事は、移設をした時にチェックが漏れがちだったので、自分用のメモとして記す。いわゆる備忘録。環境によっては、あれが足りないだろ!これが足りないだろ!というご指摘はあるかと思うが、あくまで私の環境でのケースなのでご了承くだされ。

作業内容

WordPressの更新停止

運用だけ行っているような環境では、メンテナンス表示にするなどして、作業を中断してもらうのがよいだろう。

DBの移設

同環境のDBを構築する。mysqldumpでdumpして構築。

ソースコードの移設

カスタムテーマだけ移設という選択もあるが、念の為ドキュメントルート配下まるごと移設する。

wp-config.phpの移設

わたしの環境では、wp-config.phpはドキュメントルートの1階層上に配置しているため、こちらも忘れずに移設。

wp-config.phpのDB接続設定確認

DBサーバーのホストが変更になった場合には、DB_HOSTの変更を確認。
接続ユーザーやパスワードが変更になった場合には、DB_USER/DB_PASSWORDの変更を確認。

WEBサーバー設定の移設

まずは基本設定の移設。そしてバーチャルホスト設定の移設。
apacheやnginxの実行ユーザーが誤って変更されていないかなどもチェック。nginxの場合には、php-fpmの設定も同じく移設。

とくに、新環境になって今までしっかり出来ていたセキュリティ対策が漏れたりしないよう要チェック。

php.iniの設定移設

WordPressでよくあるのが、メディアのアップロード容量を変更するためにphp.iniに修正が入っているパターンではなかろうか。その他も含めて、新環境に設定漏れがないか確認。

ドキュメントルートやログディレクトリなどの権限確認

とくにドキュメントルート配下のパーミッションについては、旧環境と同じであることをよくチェック。

FTP設定の移設

忘れがちだが、WordPressを運用していると、FTP接続環境を提供していたりすることもあるので、もしそのような環境であれば、忘れずに構築する。
接続ユーザーも移設。

ログローテートの設定移設

こちらもうっかり忘れて、ログが大変なことにならないように、しっかりとローテートの設定する。

crontabの移設

例えば、wp-cronの通常動作を停止し、crontabによる定期実行に変更している場合などもあるので、crontabも要チェック。

バックアップの移設

WordPressの運用をまかされているような場合は、外部にバックアップをとる仕組みを動作させていると思うので、スクリプトなどがある場合には、移設。

バックアップし忘れることがないよう注意。

監視設定の変更

外部からのサーバー監視設定などがある場合には、そちらを変更する。ただし、DNS切り替えによるサーバー移設の場合には、切り替わるまでに多少時間がかかるため、並行して監視を行い、しばらくしたら旧設定を消すのが良いかも。

DNS切り替えの反映待機

わたしの今回の対応がDNS切り替えによるサーバー移設だったので、DNS設定が反映されるまで、しばし待機した。

ユーザーアクセスが旧環境にきてしまうのは大した問題ではない(アクセスが少なくなるのを待つだけ)が、記事の投稿などを行う管理者がアクセスした先が旧環境だった場合には、旧環境を更新してしまう恐れがあるので、今回は48時間ほど待機したが、

旧環境のログイン権限を停止しておけば誤って旧環境が更新できることはないので、その方法をとっても良かったなと思っている。

作業時間を短くしたい

本手順では、一番最初に管理者による記事更新などの作業を停止してもらっているので、できるだけ全体の作業時間を短くしたい。

ということであれば、サーバーを並行稼動させて、一度新サーバーを構築してしまい、/etc/hostsファイルにて、対象ドメインが新サーバーに向くよう設定を入れてアプリ確認をする。

そして、切り替えのタイミングで、

  • WordPressの更新停止
  • DBを改めて更新
  • ソースコードを改めて更新
  • (軽くアプリ確認)
  • DNS切り替え

とやると作業時間は少ない。ただし、このように行ったとしても、今回の場合には、DNS反映待ちの時間が発生するので、そちらがはるかに長い。効果は微小。

さいごに

今回の記事は、何を隠そう、わたしがFTP設定の移設を忘れてしまったので、自戒の意味で書いたメモですが、いざ書いてみると出てきますね。

なんなら、記載していないが、SSH関連の設定やfirewalの設定。その他、WordPressと直接関係がない設定は、まだまだある。

本記事は、「この手順を参考にしてね!」という意味では決してない!確認ポイントとして、忘れないでねという意味では、軽く頭の片隅においておいて欲しいと思う。