Firefoxでインストールしている個人的に必須のアドオン機能

メインで使用しているブラウザFirefoxで使っているアドオンの一覧。標準で実装されていてもよい機能もあると思うけれど。

ロケーションバーから新しいタブを開く (New Tab from Location Bar)
タブ機能で必須と思うのに、標準では実装されていない機能その1

新しいタブでリンクを開く Open Link with New Tab
タブ機能で必須と思うのに、標準では実装されていない機能その2

Google Analytics Opt-out
トレースされたくないので、入れるもの

uBlock Origin
広告は除去したい

Amazon Price Tracker – Keepa.com
Amazonの販売価格の履歴を確認する

Web Developer
昔から使っている、開発者用のツール

Font Finder (revived)
実際にレンダリングされているフォントの情報を調べる

ColorZilla
レンダリングしている色をかんたんに調べるスポイト

QR Code (Generator and Reader)
該当URLをスマホで表示する場合に使う

Page Saver WE screenshot capture tool
スクリーンキャプチャツール

Popup ALT Attributes
画像のaltコメントをマウスホバーで表示する、昔はブラウザ標準だったけれど、いまは昔の機能

Bookmark Dupes
ぐちゃぐちゃになったブックマークの重複を調べて整理

iCloud ブックマーク
iPhoneやiPadのSafariのためにブックマークを同期する。Windowsでしか動作しないのでWindowsのFirefoxで実行。これはMac版がほしい

User-Agent Switcher
ブラウザのUser Agentをかんたんに書き換える。Firefoxを除外している心の狭いサイトで活用

KISaD JSON Viewer
見にくいjsonのデータをみやすく整形して表示する

Video DownloadHelper
Youtubeなどの動画サイトの動画ファイルをオフライン保存する

Chromeでは拡張機能をインストールしないと実現しない機能である「最後のタブを閉じても Firefox が閉じない」ようにするには、アドオンは不要でabout:config で設定できる。
browser.tabs.closeWindowWithLastTab を false

Clean-Spam-Link-Tweet
Twitter(現𝕏)のspam投稿(インプゾンビ)を簡単に報告&ブロックしたり、spam投稿を自動ミュートしたりするもの。Chrome版もある。

Google Chromeでインストールしている個人的に必須の拡張機能

メインでは使用していないGoogle Chromeにインストールしている拡張機能。Link Blankerの存在を知ったので、メインのブラウザにしてもよいかもと思っている。なぜ、別ドメインのみ別タブで自動で開く機能がブラウザ標準で実装されていないのか、こういう機能がタブブラウザとしての最大のメリットだと思うのだけれど。

Link Blanker
標準の動作はなんでもリンクを_blankで開いてしまうので、メニューから「リンク先が同一ドメインの場合は無効にする」をonにすることで、別ドメインのみ_blankで開くようになる

Google Analytics オプトアウト アドオン (by Google)
トレースされたくないので、入れるもの

uBlock Origin
広告は除去したい

Keepa – Amazon Price Tracker
Amazonの販売価格の履歴を確認する

Web Developer
昔から使っている、開発者用のツール

QRコード作成器 (Quick QR)
該当URLをスマホで表示する場合に使う

Auto BCC for Gmail
Gmailで自動的にbccをつける

Keep One Pinned Tab
最後のタブを閉じても Chrome が閉じないようにする

Gmail POP Sync
Gmailで外部のpop3サーバを追加した際、pop3のfetchの間隔を自由にする(何も設定しないと1時間に1回しかfetchしない)

UI.Vision RPA
ブラウザの処理をバッチ化する

Clean-Spam-Link-Tweet
Twitter(現𝕏)のspam投稿(インプゾンビ)を簡単に報告&ブロックしたり、spam投稿を自動ミュートしたりするもの。Firefox版もある。

FreeBSD環境でApache 2.4 / PHP 8.2 / Let’s Encrypt / HTTP2を設定する

FreeBSDで、Let’s EncryptでTLS(SSL)の証明書を設定し、HTTP2プロトコルを有効にしたWebサーバを、Apache 2.4とPHP 8.2で作成する。

以下、簡単な手順を記述。

root権限でpkgで必要なものをインストールする。PHPの追加パッケージはお好みで。

pkg install  php82 php82-gd php82-mbstring php82-mysqli php82-pgsql
pkg install apache24 ap24-mod_http2
pkg install py39-certbot py39-certbot-apache

/etc/rc.conf にApache Web Serverの起動設定を行う。

apache24_enable="YES"

Apache Web Serverを起動する。ここではhttpのみの起動となる。

/usr/local/etc/rc.d/apache24 start

Let’s Encryptの実行をして証明書を取得する。httpでサーバにアクセスがあるので、Apache Web Serverの起動されていることが前提。

certbot certonly --webroot -w /usr/local/www/apache24/data -d www.example.com

crontabで定期的に更新するように設定。

0 9 1,15 * * /usr/local/bin/certbot renew

SSLの設定を行う。

cp /usr/local/etc/apache24/extra/httpd-ssl.conf /usr/local/etc/apache24/modules.d/000_httpd-ssl.conf

SSLの設定ファイルをコピーして編集する。Let’s Encryptで作ったキーファイルを指定

SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.example.com/cert.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.example.com/privkey.pem"
SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.example.com/fullchain.
pem"
ファイル内の書き換える箇所のみ引用

Apacheの設定では、 /usr/local/www/apache24/httpd.conf を書き換えする。

LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so
# LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so

mod_mpm_preforkがデフォルトになっているが、これではHTTP2でPHPを実行できないので、mod_mpm_eventを有効にする。

設置されている /usr/local/etc/apache24/modules.d/200_mod_h2.conf を編集する

LoadModule http2_module libexec/apache24/mod_h2.so

/usr/local/etc/apache24/modules.d/001_php.conf というファイルを作成して編集。

HTTP2の環境でのPHPはmod_phpではなく、php-fpmでの実行となる。

LoadModule proxy_module libexec/apache24/mod_proxy.so
LoadModule proxy_http2_module libexec/apache24/mod_proxy_http2.so
LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so
<FilesMatch \.php$>
        SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

/etc/rc.conf で起動するように設定

php_fpm_enable="YES"

php-fpmを起動し、Apache Web Serverを再起動する。

/usr/local/etc/rc.d/php-fpm start
/usr/local/etc/rc.d/apache24 restart

Speed Wi-Fi 5G X11 NAR01 ファームウェア 2.6.0→2.8.0

https://www.necplatforms.co.jp/support/wimax/x11/index.html

Speed Wi-Fi 5G X11 NAR01のファームウェア 2.6.0が公開されて、アップデート。

ようやく、省電力モードが「エコ」でなく「ハイパフォーマンス」の設定で安定して動作するようになったかも。

あとは、高負荷時の安定性を確認しないといけないですね。ファームウェア2.3.0では、大容量のダウンロードを連続するなど、負荷を連続してかけ続けると通信が途絶えたり、勝手に再起動したりしていたけど、2.6.0では今のところ、安定しているようだが、どうだろうか。

追記:
こちら1週間ほど使っていますが、安定しています。いままでの不安定さが嘘のよう。このまま安定稼働してくれればよいのですが。

追記2:
ファームウェア2.7.0がリリースされました。こちらにアップデートしましたが、安定動作は変わらず、良好。

ファームウェア2.8.0が2023/08/22にリリースされて、最新版に更新。問題なく動作しています。

iPadOS 16.1のSafariの表示がおかしい

iPadのOSを16.1に更新したところ、Safariの表示がおかしくなった。デスクトップモードのview port が正しく認識されていない可能性がありそう。

iPadを横向きにしたときは、きちんと横幅にフィットして表示される。

画面横向き(iPad Pro 11inch)
画面縦向き(iPad Pro 11inch)

iPadを縦にすると、Safariの表示で横幅にフィットしないではみ出る。

これは、いわゆる「おま環」の現象だろうか?

補足:ステージマネージャをoffにしたら、iPad縦向きでも、Safariできちんと幅いっぱいにフィットした。ステージマネージャのバグのような気がする。

2022/12/14追記

iPadOS 16.2に更新したところ、まだこの状況は変わっていないみたい。ただ、うまく表示できているサイトもあって、どうなっているのかな。Yahoo Japanは16.1と同様で、縦モードのときはみ出たままです。

vsftpd

めげずにCentOS8に設定中

# dnf install vbsftpd
# systemctl start vsftpd
# systemctl enable vsftpd

FreeBSDでのqmail vpopmailのインストール

まずはportsを最新にする

# portsnap all

portsでqmailをmakeする

# cd /usr/ports/mail/qmail
# make config
# make install
qmailのmake config

configはこんな感じで、設定。あれこれ詰め込んでnetqmailを構築する

続いてcheckpasswordとtcpserverをインストール。この2つはデフォルト設定のままで進む

# cd /usr/ports/security/checkpassword
# make install
# /usr/ports/sysutils/ucspi-tcp
# make install

qmailの基本的な設定は割愛。

/var/qmail/rc は、Maildirの形式にする。

# cp /var/qmail/boot/maildir /var/qmail/rc

vpopmailのインストール

# /usr/ports/mail/vpopmail
# make config
# make install
vpopmailのmake config

configはこんな感じで、設定。あれこれ詰め込んでvpopmailを構築する。

起動スクリプトは、あれこれ自前で設定したいので、独自に作成する。

# vi /usr/local/etc/rc.d/qmail
!/bin/sh

# PROVIDE: qmail
# REQUIRE: LOGIN
# KEYWORD: shutdown

#
# Add the following line to /etc/rc.conf to enable qmail:
# qmail_enable="YES"
#

. /etc/rc.subr

name="qmail"
desc="Enable/Disable qmail"
rcvar="qmail_enable"

load_rc_config "$name"

start_cmd="${name}_start"
command="/var/qmail/bin/qmail-start"

extra_commands="stop"
stop_cmd="${name}_stop"

pidfile="/var/run/${name}.pid"
HOSTNAME=hostname

qmail_start(){
    #start qmail daemon
    /var/qmail/rc start

    /usr/local/bin/tcprules /usr/local/vpopmail/etc/tcp.smtp.cdb \
    /usr/local/vpopmail/etc/tcp.smtp.tmp \
    < /usr/local/vpopmail/etc/tcp.smtp

    #start smtpd
    /usr/local/bin/tcpserver -H -R -v -x /usr/local/vpopmail/etc/tcp.smtp.cdb -c 100 -u qmaild -g qmaild 0 25 \
    /var/qmail/bin/qmail-smtpd 2>&1 \
    | /var/qmail/bin/splogger smtpd &

    #start popd
    /usr/local/bin/tcpserver -R -H 0 110 /var/qmail/bin/qmail-popup $HOSTNAME \
    /usr/local/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 \ | /var/qmail/bin/splogger pop3d &

    /bin/pgrep qmail-send > ${pidfile}
    echo "qmail start"
}

qmail_stop(){
    killall tcpserver
    killall qmail-send
    echo "Shutting down pop & smtp"
}

run_rc_command "$1"
# chmod 0755 /usr/local/etc/rc.d/qmail
# echo qmail_enable=\"YES\" >> /etc/rc.conf
# echo sendmail_enable=\"NONE\" >> /etc/rc.conf

こんな感じで起動スクリプトを置いて、rc.confで起動設定と、標準のsendmailの停止を設定する。

他のプログラムはpkgでイントールしたいので、qmailとvpopmailはpkgで更新されないようにlockをかける

# pkg lock netqmail-1.06_5
# pkg lock vpopmail-5.4.33_3

以上で、qmailとvpopmailの基本的なインストールと設定は終了。

WEBブラウザでアカウント管理するならqmailadminをインストールする。

# cd /usr/ports/mail/qmailadmin
# make install

設定は標準のままでインストールまで行う。

Linux環境であれこれ苦労してパッケージ入れたり、自分でコンパイルすることに比べて、FreeBSDでの構築は非常に簡単ですね。

CentOSの終焉

CentOS8の環境構築の方法をグダグダと調べつつ1年。CentOS6のサポートが終了してしまい、いよいろ尻に火がついたと思ったら、CentOS8にも不穏な動きが。

CentOS8がRHELのベータ版のような位置付けになってしまうということで、CentOS6から移行しないとという気持ちが一気に鎮火してしまった。

今後の選択肢は安定性を求めてDebian/GNU Linuxか、先進性とそこそこの安定性でUbuntu Serverにするか、それとも、それこそパッケージの更新頻度は多くて安定性とは言えないかもしれなけどOSとしては強固で、昔使っていたFreeBSDに出戻りするか。

Ubuntu Serverはベストチョイスになりそうな気もするし、Debianのほうが枯れている環境を構築できる気もする。

ただ、qmailやvpopmailといった過去のレガシーシステムをそのまま使いたいとなると、FreeBSDが一番設定が楽で、過去の経験も生かしつつ、さくさくと移行できそう。ただ、システムとしてLinuxに比べて一般的でない気もして、ちょっと躊躇う。

と、いった感じで、あれこれ考えてはいるものの、実際に操作してみないとわからない点もあるので、FreeBSDとDebianの環境を用意して、インストールや設定をしつつ、qmailとvpopmailをどう使うか、もしくはqmailとvpopmailの環境を諦めて、用意されたPostfixなどのシステムでvirtual domainのmail serverを構築するか(その場合は既存のユーザー設定、パスワードはリセットですね)、それぞれテストしてCentOS6からの脱却を図りたいと思う。

notqmail/vpopmailをCentOS8にインストールする

[2024/02/19追記]
このところ、gmailの設定であれこれ話題になっているDKIMやSPF,DMARCなどはこちら
メールのなりすましを電子署名Domainkeys/DKIMで防ぐ(qmailまとめ)
qmailの情報収集 2019/08/26
を見ておきましょう。以下の手順はあくまでも素のnotqmailのインストール方法になりますので、ご注意ください。

[追記ここまで]

過去の古いOSのサーバから移行することを目的にqmailの環境をもう一度、新しいOSの環境に構築する。

10年近く何も作業していなかった設定方法のため、1から思い出して処理する必要があった。

いまさらqmailを使うのはどうかと思うが、vpopmailとqmailadminでオペレートが楽なのは評価。あと、過去のOSのサーバからの移行がそのままファイルコピーで済むため、postfixの環境に移行より楽。また、プレーンなqmailでなく、フォークされて開発が続けられているnotqmailをインストールすることにした。

コンパイラをいれておく

dnf install gcc.x86_64

notqmailの入手とmake

https://github.com/notqmail/notqmail からnotqmailのソースコードを取得

ユーザーをシステムに設定


# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails

rootアカウントでmakeしてインストール
# make setup check

初回のドメイン設定
# ./config-fast example.com

rcファイルのコピー
# cp home /var/qmail/rc
# chmod 0755 /var/qmail/rc

rcファイル内は、以下のように書き換え
qmail-start ./Mailbox splogger qmail

qmail-start ./Maildir/ splogger qmail

初期の管理アカウントを設定
(外部の他メールアカウントへ転送の例)
# cd ~alias
# touch .qmail-root .qmail-postmaster .qmail-mailer-daemon
# chmod 644 .qmail*
# echo -n ‘xxx@example.com’ > .qmail-root
# echo -n ‘xxx@example.com’ > .qmail-postmaster
# echo -n ‘xxx@example.com’ > .qmail-mailer-daemon

tcpserverの入手とmake

wget https://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

vi error.h で extern int errno; を #include <errno.h> と書き換える

rootアカウントでmakeしてインストール
# make setup check

vpopmailの入手とmake

wget http://jaist.dl.sourceforge.net/project/vpopmail/vpopmail-stable/5.4.33/vpopmail-5.4.33.tar.gz

vpopmailのアカウントを作成
# groupadd vchkpw
# useradd -g vchkpw -s /bin/false -M vpopmail
# mkdir /home/vpopmail
# chown vpopmail:vchkpw /home/vpopmail
# mkdir /home/vpopmail/etc
# chown vpopmail:vchkpw /home/vpopmail/etc

rootアカウントにて実行
# ./configure –enable-roaming-users=y –enable-relay-clear-minutes=10
# make
# make install-strip

crontabでpop before smtpのデータを10分ごとにリフレッシュ
0-59/10 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

vpopmailへの新規ドメインの追加
# /home/vpopmail/bin/vadddomain example.com

# su – vpopmail
$ cd /home/vpopmail/domains/example.com/postmaster/
$ echo -n ‘xxx@example.com’ > .qmail
でpostmasterの設定
(他メールへの転送の設定)
この設定がない場合は /home/vpopmail/domains/example.com/postmaster/Maildir/ へのローカル配送される

$ cd /home/vpopmail/domains/example.com/
$ echo -n ‘xxx@example.com’ > .qmail-root
でrootアカウントのメールの設定
(他メールへの転送の設定)

インストール済みだったMTAを削除しqmailを設定

すでにインストールされていたposfixを削除
# dnf remove postfix

メール関連のコマンドをsymlinkで設定
# ln -s /var/qmail/bin/qmail-qstat /usr/bin/mailq
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

qmailを起動

Daemontoolsを使わずにいったん仮で起動させてローカルのメールデリバリーを確認する
# sh /var/qmail/rc &

Daemontoolsをインストール

# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
展開したディレクトリが実行ファイルの置き場になり/command/からsymlinkとなるため、コンパイル前に展開場所を/usr/local/などにする。

vi src/error.h で extern int errno; を #include <errno.h> と書き換える
# package/install

systemctl用daemontools を設定

/etc/systemd/system/daemontools.service

[Unit]
Description=daemontools Start supervise
After=getty.target

[Service]
Type=simple
User=root
Group=root
Restart=always
ExecStart=/command/svscanboot /dev/ttyS0
TimeoutSec=0

[Install]
WantedBy=multi-user.target

# systemctl enable daemontools
# systemctl start daemontools

Daemontoolsでsmtp:qmail/pop3:vpoopmailの待ち受けのtcpserverを設定

/var/superviseに必要なディレクトリを作成

# mkdir -p /var/supervise/qmail
# mkdir -p /var/supervise/smtpd
# mkdir -p /var/supervise/pop3

# vi /var/supervise/qmail/run

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail

# vi /var/supervise/smtpd/run

#!/bin/sh
/usr/local/bin/tcprules /home/vpopmail/etc/tcp.smtp.cdb \
/home/vpopmail/etc/tcp.smtp.tmp \
< /home/vpopmail/etc/tcp.smtp
exec env - PATH="/var/qmail/bin:$PATH" \
/usr/local/bin/tcpserver -HRl `hostname` -v -x /home/vpopmail/etc/tcp.smtp.cdb -u `id -u vpopmail` -g `id -g vpopmail` 0 smtp \
qmail-smtpd 2>&1  | splogger smtp 3

# vi /var/supervise/pop3/run

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
/usr/local/bin/tcpserver -HRl `hostname` -v 0 pop3 qmail-popup `hostname` /home/
vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1  | splogger pop3 3

# chmod 0755 /var/supervise/qmail/run
# chmod 0755 /var/supervise/smtpd/run
# chmod 0755 /var/supervise/pop3/run

あとは、/serviceにリンボリックリンクをつける

# cd /service
# ln -s /var/supervise/qmail .
# ln -s /var/supervise/smtpd .
# ln -s /var/supervise/pop3 .

(qmail付属のmultilogの設定は省略、qmail付属のsploggerに投げているので最低限必要なログはsyslog経由で取得できるはず)

これで起動するので、firewalldで閉めているportを開けよう

# firewall-cmd –add-service=smtp –zone=public –permanent
# firewall-cmd –add-service=pop3 –zone=public –permanent
# firewall-cmd –add-port=587/tcp –permanent

daemontoolsの設定は、このへん参照

https://pocolog.bass-world.net/tech/2018/gmo-cloud-centos7-daemontools-tcpserver/
https://yassu.jp/pukiwiki/index.php?daemontools%A4%C7%A5%ED%A5%B0%B5%AD%CF%BF%A4%C8%A5%D7%A5%ED%A5%BB%A5%B9%B4%C9%CD%FD
http://www.marronkun.net/linux/other/daemontools_000040.html
http://www.emaillab.org/djb/daemontools/daemontools-howto.html
https://www.atmarkit.co.jp/ait/articles/0205/21/news002.html

ezmlmのインストール

# wget http://ezmlm.untroubled.org/archive/7.2.2/ezmlm-idx-7.2.2.tar.gz
# tar xzf ezmlm-idx-7.2.2.tar.gz
# cd ezmlm-idx-7.2.2
# make
# make man
# ./ezmlm-test
# make install

qmailadminのインストール

(設定中:時間がとれなくて作業遅延……)

qmailでよく使うコマンド

キューに入っているメールを確認
/var/qmail/bin/qmail-qread

キューに入っている数を確認
/var/qmail/bin/qmail-qstat

キューの強制再送
kill -s ALRM qmail-send のPID

CentOS 8 の設定

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

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に書くより遅い。