当ブログのOSはCentOS8です。(2021年7月10日現在)
CentOSがCentOS Streamへ移行することが発表され、CentOS8は2021年12月31日でサポートを終了します。
サポート終了までになんとかしないといけません。
参考サイト CentOS Project shifts focus to CentOS Stream
そこで、以前使用した経験のあるFreeBSDへ移行することにしました。
本番サーバーでは、独自ドメインのWordpressサイトとMovableTypeサイトを運営しています。
独自ドメイン用のメールサーバーは、本サーバーとは切り離し、メンテナンス中でもメールが常に受信できるようにしています。

CentOSは有償版LinuxであるRedhat Enterprise Linux(RHEL)のクローンで、RHELを元に商標、ライセンスの関わるものを排除、フリーなものに置き換えたOSで、商用で利用されているRHELと互換性が最も高いOSで、コストがかからないOSです。そのためサーバー用途のOSとして利用されてきました。RHELを追随する形だったのがCentOS StreamになるとRHELを先行するテスト版の位置づけになります。CentOS Streamは開発環境であれば問題はないでしょうが本番環境では不安が残ります。
CentOS 8 から FreeBSD 12へ

CentOS8のEOLに対応するため、FreeBSD 12へ移行することにしました。
ちなみにさくらインターネットのレンタルサーバーはFreeBSDです。
現在、本サーバ(CentOS8 標準インストール)は、さくらインターネットのVPS(仮想専用サーバ)の2Gプランを契約しています。
サービス情報 さくらインターネットのVPS
今回の移行では、新サーバを契約し、そのサーバにFreeBSD12をインストールすることにしました。
From:CentOS 8 標準OS VPS 2GプランTo:FreeBSD 12 カスタムOS VPS 2Gプラン
どちらもストレージ変更オプションの申し込みを行っています。
参考サイト ストレージ変更オプション
さくらのVPS 2Gプランの試用
さくらのVPSを契約

契約したさくらのVPSにFreeBSD 12をインストール

FreeBSD 12をセットアップ

Nginx, MariaDB and PHP (FEMP)のインストール
WordPressおよびMovableTypeで利用することを想定しています。
MovableTypeではPerlモジュールやfcgiwrapのインストールが必要ですので、その内容についてはMovableTypeのインストールで説明します。
データベースの移行や設定ファイルの移行に関してはそれぞれWordpressのインストールとMovableTypeのインストールで説明します。
ここでは、FEMPの構築のみです。

VPSサーバー間の通信
[aside]VPSの契約は同じリージョンでなければ利用できません[/aside]
さくらのVPSの2台のサーバ間でローカルネットワークによるファイル転送ができるようにします。
この作業により、各アプリケーションの設定ファイルなどを転送することができます。
また、相互バックアップなどにも利用できます。
すでにサービスを開始していたサイトのサーバ上のデータを転送できるようになるので移行作業がはかどります。
インターネットを使用しませんのでパケット制限などにも影響しませんし転送速度のリミット制限もされません。

OpenSSHの設定
サーバー間でリモート操作ができるようにOpenSSHの設定を行います。
OpenSSHの設定はOpenSSHサーバとクライアントの両方で行う必要があります。
ここでは、CentOS8(OpenSSHクライアント)からFreeBSD(OpenSSHサーバー)への接続をイメージしています。
FreeBSD 12をセットアップですでに設定してあれば内容が重複します。
この設定によりVPS間でrsyncを使ってファイル転送が可能になります。

WordPressのインストール
WordPress本体とCentOS8でサービスしていたサイトのデータベースデータ、テーマやプラグインモジュールのデータの移行について記載しています。
WordPressはCentOS8の時と同様に管理画面で更新していく予定なのでWordpress本体はファイルを展開しているだけです。
そのためFreeBSDではCentOS8のディレクトリーの複製を行っているだけです。
記事内容などはデータベースに保存されているため、CentOS8からmysqldumpした内容をFreeBSDにインポートしています。
関連記事
MovableTypeのインストール
CentOS8ではPSGI(Perl Web Server Gateway Interface)/Plackで動作させていました。それにはPSGIサーバはStarmanを使用し、SupervisordでPlackサーバの起動を行っていました。
FreeBSDではパフォーマンスより管理が容易なfcgiwrap(FCGI)を使用するように変更しています。
この機にMovableTypeのメジャーバージョンアップを行っています。
PSGI/Plack動作からFCGIへの設定変更とPerlモジュールのインストールです。
関連記事