サーバー入れ替えでやったこと (CentOS 8)


CentOS 6 がサポート終了間近なのと、 PHP が古すぎるのでバージョンアップを行いました。その際に行ったことのメモ書きです。前回は丸々コピーしましたが、今回は最初から構築です。

サーバー立ち上げ

旧サーバーとは別に新サーバーを用意します。新しいサーバーには CentOS 8 を入れました。

趣味サーバーなのでダウンタイムとか、データの差分移行とかは深く考えず、のんびり実施しました。

さくらの VPS でやること

IPv6 が無効になっているので、有効にします。先に firewalld を自動で起動するようにしておきます。

systemctl enable firewalld.service
systemctl start firewalld.service

設定を確認したところ、デフォルトで ssh とその他最低限の許可設定なので、そのまま公開しても大丈夫です。

VPS のコントロールパネルからパケットフィルタを無効化しておきます。ファイアウォール設定するのと、パケットフィルタが IPv6 非対応なので使う意味ないかなと思います。

IPv6 有効化はこちらの記事のとおり実施しました。

いつもやること

サーバー立ち上げ時の慣習としてやることがいくつかあるので実施しました。

  • SSH のパスワード認証禁止
  • SSH のポート番号変更
  • ユーザーの作成
  • sudoers の設定
  • SSH の root ログイン禁止

PHP Nginx MariaDB 立ち上げ

念願の PHP 7.x 系をインストールしました。今更すぎますね。nginx なのでモジュールではなく fpm です。

詳細はこちらの記事にまとめました。

WordPress のファイルをコピー

rsync 使うことも考えましたが、wordpress のファイル書き換えるのは私だけなので同期する必要はないかなと思い、手動でコピーすることにしました。

WinSCP でフォルダを右クリックすると、「ファイル カスタム コマンド」というものがあり、その中にある「Tar/Gzip」メニューを使用しました。ファイルまとめて圧縮してから移行したいのもありますが、 tar なら権限も一緒に移動できるので楽です。

.tgz ファイルができるので、一旦ローカルマシンに落としてから新サーバーにアップロードしました。展開も同様に「ファイル カスタム コマンド」から、今度は「UnTar/Gzip」を使用しました。

DB を移行

以前は MySQL を使用していましたが、 MariaDB に置き換えました。あまり差は感じないです。

DB の移行は、 HeidiSQL を使って .sql ファイルとしてエクスポートし、それを同じく HeidiSQL で新しいサーバーに対し実行しただけです。容量が多くないのでこれで大丈夫でした。

ユーザーも必要なものだけ移行しました。数が少ないので HeidiSQL から GUI で手動コピーです。

Nginx の設定

Apache から nginx に乗り換えたので設定し直しです。設定ファイルはこちらが参考になります。

Apache の .htaccess とかは見えないように設定し、一応削除しておきましょう。

WordPress を更新

今までは PHP が古すぎて(5.3 系)更新できず、 WordPress 5.0.10 を使用していました・・・。更新して現在は最新版です。

ファイアウォール設定

80 ポートと 443 ポートを開けます。

firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-service=https --zone=public --permanent

firewall-cmd --add-service=http --zone=public
firewall-cmd --add-service=https --zone=public

諸事情で firewall-cmd --reloadが使えないので、 --permanentありなしどちらも実行しています。

ドメインの DNS レコード書き換え

旧サーバーから新サーバーに向き先を変えました。作業前に TTL を小さめにしておくと早く切り替わります。

WordPress のプラグイン変更

コードの色付けに Crayon Syntax Highlighter というプラグインを使用していましたが、 PHP のバージョンアップで動作しなくなったので新しいプラグインを導入しました。

プラグインの選定は wordpress.com のサポート記事に載っていたという理由で SyntaxHighlighter Evolved戻しました

Gutenberg にも対応していますし、色付けもいい感じです。プログラミング言語がエディタから指定できるのがいいですね。(これから全記事コードブロックを置き換える作業が待っています)

& が & にエスケープされる問題があるので、こちらを参考に修正しました。

ついでにテーマも更新

今までは Twenty Seventeen を使っていました。画像が大きく出るデザインが気に入っていたのですが、もう3年もたったので最新の Twenty Twenty に変更しました。前回は淡色というか白背景だったので、今回は濃色に変更です。

まとめ

CentOS 7 を通り越していきなり CentOS 8 にしたので、覚えることが多くて大変でした。 dnf とか journald とか firewalld とか podman とか・・・。元の yum とか docker のコマンドを維持してくれていたり、前のものより操作が楽になったりして、学習時間はそれほどかからなかったかなとは思います。

しかし、今まで一般的だと思っていたものが次々旧式になっていくのは恐ろしいですね。IT 系の知識は2年くらいで陳腐化したりするので、定期的な学習が必要だなと改めて感じました。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください