CentOS 8のWebサーバー構築に関わる変更点

isdはじめに

2019年9月に、CentOS 8 がリリースされました。
各クラウドサービスではなかなかテンプレートOSがリリースされないので、Oracle VM VirtualBox 上の仮想マシンに CentOS 8 をインストールし、Webサーバー構築のひととおりの設定を実施してみました。

僕がWebサーバーを構築する際に気になった CentOS 7 からの変更点をまとめます。

isdWebサーバー構築に関わる変更点

パッケージ管理システム

yum から dnf に変更となりました。
これが CentOS 8 の一番大きな変更点でしょうか。
dnf コマンドと yum コマンドは仕様がほぼ同じですし、yum コマンドは dnf コマンドにエイリアスされているので、ほぼ、これまでと同じように使えるかと思います。

yum と dnf の違いは、以下の記事が詳しいです。

・yumからDNFへの移行 – Qiita
https://qiita.com/yunano/items/eedd3da40d67394881a2

パケットフィルタ―

パケットフィルタ―のバックエンドが iptables (netfilter) から nftables に変更となりました。
フロントエンドのデフォルトは、CentOS 7 と同様、firewalld です。
フロントエンドとして iptables, firewalld, nftables を使用できますが、どれを使用してもバックエンドは nftables となります。

nftables のしくみや、iptables, firewalld との互換性については、以下の記事が詳しいです。

・Linuxにおける新たなパケットフィルタリングツール「nftables」入門 – さくらのナレッジ
https://knowledge.sakura.ad.jp/22636/

・Red Hat Enterprise Linux 8 新機能をわかりやすく解説【RHEL8】 – Hacker’s High
https://hackers-high.com/linux/rhel8-new-features/

ApacheのMPM

CentOS 8 リポジトリの Apache のメジャーバージョンは CentOS 7 と同じ 2.4 ですが、MPM のデフォルトが prefork から event に変更となりました。

※もともと、Apache 2.4 のデフォルトは event でしたが、CentOS 7 向けRPMパッケージでは、prefork となっていました。

event は prefork と違って、マルチスレッドで動作します。
PHP との連携に関しては、event の場合、スレッドセーフではない mod_php は使用できないため、PHP-FPM + mod_proxy_fcgi を使用することになります。

なお、CentOS 8 リポジトリの Apache 2.4 は、マイナーバージョンが上がっているので、ついに HTTP/2 が使用できるようになります。
ただし、HTTP/2 はマルチスレッドで動作しているそうで、prefork では使用できません。

「静的ファイル配信と動的処理の分離」による効率化と、HTTP/2の採用というメリットがあるので、CentOS 8 の Apache 2.4 では、event MPM + PHP-FPM + mod_proxy_fcgi を使用したほうがよさそうです。

MySQL

CentOS リポジトリに MySQL が復活しました!
MySQL 8.0 をインストールできます。

、、、ですが、インストールしてみたところ、mysql コマンドが日本語入力に対応していないため、僕はこれまでどおり、MySQL オフィシャルのリポジトリからインストールすることにします。

※mysql コマンドが日本語入力できないのは、使用しているモジュールの問題のようですが、このためだけにモジュールをインストールするのは面倒なので。

(参考)
・MySQLクライアントに日本語が入力できない理由 – Suzna Developer Blog
https://developer.suzna.com/entry/2018/04/23/103928

MySQL オフィシャルリポジトリからインストールした MySQL 8.0 の mysql コマンドは、日本語入力が使用できます。

screen

愛用している screen コマンドが、CentOS リポジトリには含まれなくなりました。
残念ですが、EPELリポジトリからインストールしました。

 # dnf install epel-release
 # dnf --enablerepo=epel install screen

 

テキストブラウザ elinks, lynx

サーバーからインターネットへのアクセス確認や、Webサイトの簡単な動作確認として、サーバー上で動作するテキストブラウザ elinks, lynx を使用しています。

その elinks, lynx が、CentOS 8 では、CentOS の PowerTools リポジトリに移行しました。
PowerTools リポジトリはデフォルトでは無効となっているので、dnf コマンドで以下のように、’–enablerepo=PowerTools’ をつけてインストールする必要があります。

 # dnf --enablerepo=PowerTools install elinks lynx

 

PowerTools リポジトリには、xxx-devel パッケージも多く含まれます。
以下のように、デフォルトで有効化してしまってもよいかもしれません。

 # dnf config-manager --enable PowerTools

 

vim

vim の設定ファイルが .vimrc ではなく .virc に変更となりました。
これは CentOS 8 の変更というより、vim の仕様変更でしょうね。
 


これぐらいでしょうか。
本番環境を構築・運用すれば、もっと増えるかもしれません。
気づいたことがあれば、追記します。

isdまとめ

CentOS 8 で、僕がWebサーバーを構築するうえで気になった CentOS 7 からの変更点をまとめました。
他の方も書かれていますが、構築・運用においては、CentOS 6 から 7 への変更よりはとまどうことが少なく、影響が小さい印象です。

CentOS 6 は、2020年11月でサポートが終了となります。
CentOS 7 も、2024年6月でサポートが終了となり、あと4年ぐらいしかありません。
ですので、CentOS 6 からアップデートするなら、CentOS 8 を選択するケースが多いでしょう。
2020年は、CentOS 8 の採用が進みそうです。
 

isd参考記事

CentOS 8 (RHEL 8) の新機能や CentOS 7 との違いについては、以下の記事も参考になりました。
ありがとうございました。

・Red Hat Enterprise Linux 8 新機能をわかりやすく解説【RHEL8】- HACKER’S HIGH
https://hackers-high.com/linux/rhel8-new-features/

・CentOS 8.0をインストールしてみた – 外道父の匠
http://blog.father.gedow.net/2019/09/26/centos8/

・Red Hat Enterprise Linux 8.x と 7.x の違いまとめ – たくメモ
https://takumi9942.net/blog/?p=1680

・CentOS8 (Minimum) インストールしてとんでもなかったこと一覧 – NorthPage
https://north.thco.mp/2019/09/26/centos8-minimum/
 

Follow me!