自宅サーバを さくら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のモデルチェックは行ったのですが、 最近のものは一律で同じものが使用されているようです。

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宛のメールの転送設定

CentOS7初期設定 - CentOSで自宅サーバー構築

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の初期値が変わった?

swapfileの追加 — さくらの 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設定の見直し(基本前回のままを踏襲したので)