設定ファイルについては別途修正が必要。インストールと初期起動までをメモ。

hostnameを設定する
# hostnamectl set-hostname www.example.com

timezoneを設定する
# timedatectl set-timezone Asia/Tokyo

epelレポジトリを追加する
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

dnfの自動更新設定
# dnf install dnf-automatic

Postfixを起動する
# dnf install postfix
# systemctl start postfix
# systemctl enable postfix

PostgreSQLを起動する
# dnf install postgresql-server postgresql
# postgresql-setup initdb
# systemctl start postgresql
# systemctl enable postgresql

MariaDBを起動する
インストール直後はrootにパスワード未設定なので注意
# dnf install mariadb-server mariadb
# systemctl start mariadb
# systemctl enable mariadb

nginxを起動する
# dnf install nginx
# systemctl start nginx
# systemctl enable nginx

php-fpmを起動する
# dnf install php php-fpm php-cli php-pgsql php-devel php-xml php-json php-pear php-pear-Cache-Lite php-mysqlnd php-bcmath php-gd php-xmlrpc php-mbstring php-opcache php-pecl-zip php-pecl-apcu php-pear-Date php-pear-Mail php-pear-Net-URL php-pear-Net-SMTP php-pear-Net-Socket php-pear-HTTP-Request
# systemctl start php-fpm
# systemctl enable php-fpm

firewalldの設定を追加
# firewall-cmd –add-service=http –zone=public
# firewall-cmd –add-service=https –zone=public
# firewall-cmd –add-service=http –zone=public –permanent
# firewall-cmd –add-service=https –zone=public –permanent
# firewall-cmd –list-services –zone=public

tcp_wrappersはRHEL8/Centos8から削除されていて使えないのでIPアドレスの開け閉めもfirewalldですべて行うこと
# firewall-cmd –permanent –remove-service=ssh
# firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4″ source address=”[接続元のIP]” port protocol=”tcp” port=”22″ accept”
# firewall-cmd –reload
設定失敗するとリモートログインできなくなるので注意

特定のIPアドレスの接続を拒否
# firewall-cmd –zone=drop –permanent –add-source=192.168.0.0/24
# firewall-cmd –reload

logwatchをインストール
# dnf install logwatch

必要なツールをインストール
# dnf install rpm-build
# dnf install make
# dnf install ncurses-devel

Remiのレポジトリを追加
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

php7.3を入れる
デフォルトのphp7.2を消す
# systemctl disable php-fpm
# systemctl stop php-fpm
# dnf remove php php-fpm php-cli php-pgsql php-devel php-xml php-json php-pear php-pear-Cache-Lite php-mysqlnd php-bcmath php-gd php-xmlrpc php-mbstring php-opcache php-pecl-zip php-pecl-apcu php-pear-Date php-pear-Mail php-pear-Net-URL php-pear-Net-SMTP php-pear-Net-Socket php-pear-HTTP-Request php-cgi

# dnf install php73-php php73-php-gd php73-php-cli php73-php-fpm php73-php-xml php73-php-imap php73-php-json php73-php-pear php73-php-pgsql php73-php-bcmath php73-php-common php73-php-xmlrpc php73-php-mysqlnd php73-php-opcache php73-php-mbstring php73-php-pecl-zip php73-php-pecl-apcu php73-php-pecl-http php73-php-pecl-uuid php73-php-pecl-yaml php73-php-pecl-mcrypt php73-php-pecl-pdflib php73-php-pecl-memcache php73-php-pecl-xlswriter
# ln -s /usr/bin/php73 /usr/bin/php
(phpコマンドが/usr/bin/php73でインストールされるので、symlinkでphpを作っておく)
# systemctl start php73-php-fpm
# systemctl enable php73-php-fpm


php-pear-Date php-pear-Mail php-pear-Net-URL php-pear-Net-SMTP php-pear-Net-Socket php-pear-HTTP-Request などは標準パケージのphp(version 7.2)に依存しているので、dnfでinstallできない(composerでプロジェクトごとインストールすればよい)

selinuxの設定
# vi /etc/selinux/config で SELINUX=permissive として再起動
# setenforce 0
ログをみて後から設定する

sshdの設定
# vi /etc/ssh/sshd_config で PermitRootLogin no と PasswordAuthentication no と修正
# systemctl restart sshd
設定失敗するとリモートログインできなくなるので注意

Let’s Encryptのインストール
なぜかepelパッケージから消えたので手動でインストール
# wget https://dl.eff.org/certbot-auto
# mv certbot-auto /usr/local/bin/certbot-auto
# chown root /usr/local/bin/certbot-auto
# chmod 0755 /usr/local/bin/certbot-auto
# /usr/local/bin/certbot-auto –nginx
あとはcrontabで自動実行設定
0 9 10 * * /usr/local/bin/certbot-auto renew

(パッケージ certbot で問題ないのか確認中)

PHP7.4がstableでリリースされたのでphp7.3から更新(7.3いれた分だけど、先のことを考えると入れ替えておいたほうがよさそう……)
# rm /usr/bin/php
# systemctl disable php73-php-fpm
# systemctl stop php73-php-fpm

# dnf remove php73-php php73-php-gd php73-php-cli php73-php-fpm php73-php-xml php73-php-imap php73-php-json php73-php-pear php73-php-pgsql php73-php-bcmath php73-php-common php73-php-xmlrpc php73-php-mysqlnd php73-php-opcache php73-php-mbstring php73-php-pecl-zip php73-php-pecl-apcu php73-php-pecl-http php73-php-pecl-uuid php73-php-pecl-yaml php73-php-pecl-mcrypt php73-php-pecl-pdflib php73-php-pecl-memcache php73-php-pecl-xlswriter

# dnf install php74-php php74-php-gd php74-php-cli php74-php-fpm php74-php-xml php74-php-imap php74-php-json php74-php-pear php74-php-pgsql php74-php-bcmath php74-php-common php74-php-xmlrpc php74-php-mysqlnd php74-php-opcache php74-php-mbstring php74-php-pecl-zip php74-php-pecl-apcu php74-php-pecl-http php74-php-pecl-uuid php74-php-pecl-yaml php74-php-pecl-mcrypt php74-php-pecl-pdflib php74-php-pecl-memcache php74-php-pecl-xlswriter

# systemctl start php74-php-fpm
# systemctl enable php74-php-fpm
# ln -s /usr/bin/php74 /usr/bin/php

ユーザーベースのmod_rewrite(.htaccess)やmod_pagespeedを使いたいのでnginxからapache httpd serverに変更
# dnf remove nginx
# dnf install httpd
# systemctl enable httpd
# systemctl start httpd
# /usr/local/bin/certbot-auto –apache

http2の設定はApacheにHTTP/2を設定してサイトの表示速度とパフォーマンスをアップを参照

apache httpd serverは、centos8のパッケージではeventMPMの場合は、phpはモジュールでなくphp-fpm経由になる設定なので、nginx用に準備したphp-fpmはそのままにする

mod_pagespeedのインストール
https://www.modpagespeed.com/doc/download
にある
Latest Stable Version
mod_pagespeed 64-bit .rpm (CentOS/Fedora)

# dnf install https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
でインストール

apache版は.htaccessで設定がディレクトリごと、バーチャルドメインのサイトごと、ユーザー権限で可能なので、便利。ただし、処理速度はapacheのconfや、nginxでのconfに書くより遅い。