ブログサーバーのリプレース(CentOS7.9 -> AlmaLinux 9.5)

サーバー入れ替え

前回と同じような感じですが、今回はOSの変更です。
そもそもCentOS 7系は既にサポートが切れてるので、CentOSのまま行くのであればStream 9系、もしくはAlmaLinux 9系か、Rocky Linux 9系あたりへの変更が候補になりそう。
ただ個人的に普段から使っているAlmaLinuxにしようと思います。

ってことで、元のVPSと同じスペック(CPU:2Core/Mem:1GB/SSD:50GB)のVPSを借りることにしました。
前回も同様の事を書きましたが、さくらのVPSはOSのインストール(入れ替え)が可能なので必要なデータを全部DLして、OS入れ替え、データの入れ直しで、1つのVPS(今使ってるVPS)だけ完結もできますが、ダウンタイムをゼロで移行したかったので新しくVPSを借りて移行完了後に前のVPSは解約する予定です。
(旧VPSも年払いにしているので残り期間でOSを入れ替えて遊ぶ可能性もありますが)

AlmaLinuxセットアップ

VPS起動時にスタートアップスクリプトが選択できたので、スワップを1Gほど追加しました。
(メモリ1Gのプランでもほぼアクセスがない当ブログ(php-fpm/MySQL/Nginx)を動かすには十分ですが、セットアップ時のインストール等々でOOM-killerが発動しまくる為)

とりあえずphp8.4とmysql8.4にしようと思います。
(どちらも8.4なのは偶然です😀)

前のサーバーはyumでインストールしていましたが、最近はdnfが主流のようなのでdnfで。

# epel追加
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

# remi追加
dnf install http://rpms.famillecollet.com/enterprise/remi-release-9.rpm

# 利用可能なphpを確認
dnf module list php

# remi-8.4の有効化
dnf -y module reset php && dnf -y module enable php:remi-8.4

# php8.4(と必要なライブラリ)インストール
dnf install php php-cli php-mbstring php-mysql php-pecl-apcu php-fpm
dnf install libedit-devel libtiff libxml2-devel libraqm
dnf install php-devel php-pdo php-gd php-xml php-mcrypt php-zip
dnf install ImageMagick
dnf install php-imagick

# mysql-community追加
dnf install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm

# mysqlインストール
dnf install mysql-community-server

# nginxインストール
dnf install nginx

# 自動起動
systemctl enable php-fpm
systemctl enable nginx
systemctl enable mysqld

WordPressデータの移植

こちらは前回の教訓が活きました。

mysqldump

文字コードを指定してdumpします。

mysqldump wordpress_db --default-character-set=utf8mb4 > wordpress.sql

zipで圧縮

zip wordpress.zip wordpress.sql
zip -r wp_root.zip wp_root

新サーバーに転送

scp wordpress.zip wordpress@xxx.xxx.xxx.xxx:/home/wordpress
scp wp_root.zip wordpress@xxx.xxx.xxx.xxx:/home/wordpress

新サーバーのユーザー@IP: wordpress@xxx.xxx.xxx.xxx
新サーバーのdir指定: /home/wordpress

新サーバーで解答

unzip wordpress.zip
unzip wp_root.zip

nginx/php-fpmの設定を移植

ここも前回同様に前のサーバーからコピペしました。
大した設定はしてないので。。

Let’s Encrypt設定

前はインストールが色々と面倒だったんですが、snapdでサクっとできました。

# snapdインストール
dnf install snapd

# snapd起動
systemctl start snapd

# シンボリックリンク追加
ln -s /var/lib/snapd/snap /snap

# certbotインストール
snap install certbot --classic

# シンボリックリンク追加
ln -s /snap/bin/certbot /usr/bin/certbot

# 発行
certbot certonly --webroot -w /var/www/html -d blog.mitsuto.com

# snapdの自動起動
systemctl enable snapd

# cronに追加
crontab -e

# 毎月1日の朝4時に更新/nginx再起動
00 04 01 * * certbot renew && systemctl restart nginx

DNSを切り替えたのでこのエントリーが見えていれば新サーバーです😀
正月休み中にリプレースをしようと思っていたので完了できて良かった~✨