CentOS 8 のインストール

CentOS サイトの Get CentOS Now をクリック。CentOS Linux DVD ISO というボタンがあるが,これは 7G バイトもあり,2層 DVD が必要である(USB メモリに入れてそこから起動するという手もあるが)。そこで,alternative downloads → mirrors とたどり,近場のミラーから CentOS-8.x.xxxx-x86_64-boot.iso をダウンロードする。こちらなら CD-R にも焼けるサイズである。Mac に Apple USB SuperDrive を接続し,生 CD-R または DVD-R の類を挿入し,ダイアログボックスが出たら「無視」を選ぶ。GUI でも焼けるはずだが,ターミナルに次のように打ち込むのが手っ取り早い:

hdiutil burn CentOS-8.*-x86_64-boot.iso

さて,インストールするマシンを立ち上げる。BIOS 設定で,通電時(AC Power Recovery)の動作を On にしておくと,停電などで止まった後で勝手に立ち上がる。また,DVD からの起動を優先にしておく。上で作成した DVD を挿入して再起動(Ctrl-Alt-Del)する。あとは指示に従ってインストールするだけである(慣れが必要)。

インストールできたら,今回は古い(壊れて立ち上がらない)サーバからのデータ移行があるので,いったんシャットダウンし,古いサーバから取り出した HDD を接続し,マウントして,必要なものを取り出す(このあたりは臨機応変)。以下のコードはすべて root で行う。

pvs
vgscan --mknodes
lvscan
mkdir /mnt
mount /dev/vg_oku1/lv_home /mnt
# 作業する
umount /mnt

必要なものを吸い出したら,シャットダウンして古いHDDを外し,本稼働する。

CentOS 8 では,時間合わせは ntpd ではなく chronyd で行う:

systemctl enable chronyd
systemctl start chronyd
systemctl status chronyd

いろいろなもののインストールは yum ではなく dnf を使う:

dnf update
dnf install emacs
dnf install httpd httpd-tools httpd-devel httpd-manual
systemctl enable httpd
systemctl start httpd
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload

dnf のいろいろな使い方:

dnf list php-*
dnf list installed | grep php

Let's Encrypt で https にするには この指示 に従って Certbot をインストールする。

dnf install wget
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

/etc/httpd/conf/httpd.conf の最後に次を追加する:

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin okumura@okumuralab.org
DocumentRoot /var/www/html
ServerName oku1.edu.mie-u.ac.jp
</VirtualHost>

さらにコマンド:

systemctl restart httpd
/usr/local/bin/certbot-auto --apache

次の行を crontab に登録(このあたりは Certbot のバージョンによるので実際の指示に従う):

0 0,12 * * * python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q

これで大丈夫なはずであるが,なぜか証明書がおかしかったので,/etc/httpd/conf/httpd-le-ssl.conf を見て /etc/httpd/conf.d/ssl.conf の中の SSLCertificateFile と SSLCertificateKeyFile を書き直した。

PHPのインストール:

dnf install php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-mysqlnd php-json

必要に応じて /etc/php.ini と /etc/php-fpm.d/www.conf を編集。

systemctl start php-fpm
systemctl enable php-fpm
systemctl restart httpd