CentOS 8のWebサーバー構築に関わる変更点
はじめに
2019年9月に、CentOS 8 がリリースされました。
各クラウドサービスではなかなかテンプレートOSがリリースされないので、Oracle VM VirtualBox 上の仮想マシンに CentOS 8 をインストールし、Webサーバー構築のひととおりの設定を実施してみました。
僕がWebサーバーを構築する際に気になった CentOS 7 からの変更点をまとめます。
Webサーバー構築に関わる変更点
パッケージ管理システム
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 の仕様変更でしょうね。
(2020.10.8追記)
これは間違っていました。
正しくは、
「vi (vim-minimal, /usr/bin/vi) は、.vircを参照するようになった。」
でした。
vim (vim-enhanced, /usr/bin/vim) は、これまで同様、.vimrcを参照します。
vi, vimがどの設定を参照するかは、–versionオプションで確認できます。
# vim --version ... システム vimrc: "/etc/vimrc" ユーザー vimrc: "$HOME/.vimrc" 第2ユーザー vimrc: "~/.vim/vimrc" ユーザー exrc: "$HOME/.exrc" デフォルトファイル: "$VIMRUNTIME/defaults.vim" 省略時の $VIM: "/etc" 省略時の $VIMRUNTIME: "/usr/share/vim/vim80" ... # vi --version ... system vimrc file: "/etc/virc" user vimrc file: "$HOME/.virc" 2nd user vimrc file: "~/.vim/virc" user exrc file: "$HOME/.exrc" defaults file: "$VIMRUNTIME/defaults.vim" fall-back for $VIM: "/etc" ...
なお、/etc/profile.d/vim.sh により、UIDが200以上のユーザーは、vi が vimにエイリアスされているので、vi (vim-minimal) を使用するユーザーは、実質的には root ユーザーのみだと思われます。
(参考)
・CentOS8 (Minimum) インストールしてとんでもなかったこと一覧 – NorthPage
https://inaba-serverdesign.jp/blog/20191226/centos8.html
(2020.10.8追記ここまで)
これぐらいでしょうか。
本番環境を構築・運用すれば、もっと増えるかもしれません。
気づいたことがあれば、追記します。
まとめ
CentOS 8 で、僕がWebサーバーを構築するうえで気になった CentOS 7 からの変更点をまとめました。
他の方も書かれていますが、構築・運用においては、CentOS 6 から 7 への変更よりはとまどうことが少なく、影響が小さい印象です。
CentOS 6 は、2020年11月でサポートが終了となります。
CentOS 7 も、2024年6月でサポートが終了となり、あと4年ぐらいしかありません。
ですので、CentOS 6 からアップデートするなら、CentOS 8 を選択するケースが多いでしょう。
2020年は、CentOS 8 の採用が進みそうです。
参考記事
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/
(関連記事)
・AlmaLinux 9とAmazon Linux 2023の雑感~サーバー構築の観点で
https://inaba-serverdesign.jp/blog/20230906/almalinux9-amazonlinux2023.html