自宅サーバを さくらVPS(石狩リージョン) + AlmaLinux 9 に移行する
最近あまり触っていなかったVPSに久しぶりにログインをしてみたところ、 OSのサポートが終了していることに気が付きました。
実務では多くのサーバ移転案件に関わっていながら、 まさか自分のサーバがサポート切れになっているとは思いませんでした…。
せっかく時間が出来たので最新OSに移行を行ってみることにしました。 約4年ぶりのリプレイスになります。
既存サーバの構成に大きな不満は無いので基本的には前回の構成を踏襲します。
自宅サーバを さくらVPS(石狩リージョン) + CentOS 8 Stream に移行する \| Blog \| riatw.me
今回のリプレイスの目的
- 最新のOS(AlmaLinux 9)に移行したい
- /var/lib/php/session フォルダの権限管理が煩雑になっているので解消したい
何故、AlmaLinux 9 なのか
Streamのサポート期限の短さが厳しく感じたのと、 業務でよく使うOSなので合わせておこうと思いました。
VPSは引き続き「さくらVPS」を採用
一瞬、X Server VPS もいいな…と惹かれたのですが、 長年お世話になっているさくらVPSにしました。
リージョンは前回以下の理由で石狩リージョンを継続しています。
- 土地柄的に寒くて冷えそう
- 石狩のデータセンターに憧れがある
- 最新のハードは石狩に導入されることが多いらしい(噂)
今回もCPUのモデルチェックは行ったのですが、 最近のものは一律で同じものが使用されているようです。
構築要件
ミドルウェア
基本的にミドルウェアは dnf でインストール出来るものを使用する。
- Apache
- PHP
- MySQL
- Perl
- Postfix
個別要件
- Craft CMS 3 の動作環境を構築する
- Let's Encryptを導入する(自動アップデート設定込み)
- Document Root はドメインごとに設定する
- /var/www/vhosts/xxxxx/html
- ログも同様にドメインごとに設定する
- /var/www/vhosts/xxxxx/logs
- SuExecとphp-fpmの設定を併用することで、 ドメインごとに実行ユーザを分ける
- Google Driveへのデータのバックアップを実施する
- さくらVPSのパケットフィルタリングを使用する(Firewalledは使用しない)
- パッケージは自動でアップデートできるようにする
※Movable Typeの動作環境は追って作成する想定
設定
基本的な設定は前のサーバのものを踏襲。 設定ファイルなどは流用する。
ユーザ作成、root宛のメールの転送設定
sshdのポート変更、rootでのログインを禁止
新しいサーバ起動後に最低限行うべき SSH 設定 - Qiita
自動アップデート設定
CentOS 8 で DNF の自動アップデートを設定する \| 株式会社オルタ
ミドルウェアをインストール
Perlは標準バージョンを利用するのでそのままで他をインストール。
- dnf install wget
- dnf install zip unzip
- dnf install php
- dnf install mysql-server
- dnf install postfix
- dnf install epel-release
- dnf install php-mysqlnd
- dnf install openssl mod_ssl
- dnf install php-mbstring php-json php-gd php-xml php-pecl-zip
- dnf install -y s-nail
Swapの設定
dnf コマンド実行時に突然「Killed」されるようになったので、swapfileの設定を追加 CentOS 8 のころは行わなかったと思うので、さくらVPSの初期値が変わった?
Postfixの設定
Postfixを起動しようとするとエラーが出た CentOSでIPv6 を無効にするとメールが送れなくなった #CentOS - Qiita
MySQLの設定
MySQL8.0を Linux(CentOS 8)にインストール&設定する手順 \| 「ポテパンスタイル」
既存データ、バーチャルホスト設定、cron設定のバックアップ
- /root/*
- /var/www/vhosts/*
- /etc/httpd/conf.d/my_config.conf
- /etc/httpd/conf.d/virtualhost/*.conf
- /etc/php-fpm.d/*.conf
- /etc/crontab
- mysqldump
バックアップデータの展開
同じ箇所に配置する DBはデータベース作成後にインポート
MySQLでデータベース作成する「CREATE DATABASE」 | UX MILK https://uxmilk.jp/12421
Let's Encrypt設定
CentOS8に無料SSL「Let’s Encrypt」を設定する \| 株式会社オルタ
phpのバージョン変更
CraftCMSの動作に PHP 8.2 が必要なため、 以下の手順でバージョンを変更。
AlmaLinux 9 に PHP をインストールする | UCWD-Studio https://ucwd.jp/blog/953
php-fpmの設定
Debian10でApache2.4+PHP-fpmを動かす - tohokuaikiのチラシの裏
CentOS8 + Apache2.4.37 + php7.2(php-fpm) で HTML ファイルの中で PHP を実行する - Qiita
php-fpmでVirtualHostごとにuid/gidを変える - とみぞーノート
Googleドライブへのバックアップ設定
rcloneでGoogle Driveへのリモートバックアップを自動化する【rsyncみたいなやつ】 \| けーのブログ
コマンドラインからGoogleドライブにファイルをアップする - 麦芽を支える技術
自動起動設定
- systemctl enable httpd
- systemctl enable mysqld
- systemctl enable postfix
今後やっていくこと
- ドキュメントルート以下のファイル整理
- Apache設定の見直し(基本前回のままを踏襲したので)