CentOSのマイナーバージョンをアップデートする - CentOS 7, Cent OS 8

CentOSのマイナーバージョンをアップグレードするには「yum update」を使います。

sudo yum update

CentOSが、最新のマイナーバージョンに更新されます。

カーネルを含めてCentOSのすべての依存しているすべてのパッケージが最新のものになります。

本番環境のアップデートは開発環境で試してから

本番環境のアップデートをいきなり行うと、環境が壊れて大変なことになります。

まず最初に、開発環境で、環境をアップデートして、重要なアプリケーションが動くことを確認してください。

# Apacheの再起動
sudo systemctl reload httpd

# Apacheの再起動の確認
sudo systemctl status httpd

# Mariadbの再起動
sudo systemctl restart mariadb

# Mariadbの再起動の確認
sudo systemctl status mariadb

# Postfixの再起動
systemctl restart postfix

# Postfixの確認
systemctl status postfix

# Webアプリケーションの再起動
hypnotoad myapp.pl

開発環境で正しく動くことを確認したら、本番環境で実行です。

Apacheの起動に失敗しました

Apacheのバージョンがアップグレードされて、設定ファイルの互換性がない部分で、エラーが出ている可能性があります。

Apacheのステータスを確認してみましょう。

systemctl status httpd

エラーのサンプルです。

Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp systemd[1]: Starting The Apache HTTP Server...
Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp httpd[21879]: AH00526: Syntax error on line 16 of /etc/httpd/conf.d/autoindex.conf:
Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp httpd[21879]: Invalid command 'IndexOptions', perhaps misspelled or defined by a module not included in the server configuration
Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp kill[21881]: kill: cannot find process ""
Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp systemd[1]: httpd.service: control process exited, code=exited status=1
Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp systemd[1]: Failed to start The Apache HTTP Server.
Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp systemd[1]: Unit httpd.service entered failed state.
Feb 04 08:13:28 tk2-261-xxxxx.vs.sakura.ne.jp systemd[1]: httpd.service failed.

なんでしょうね「/etc/httpd/conf.d/autoindex.conf」って。Aapcheがバージョンアップされて、勝手に違う設定ファイルが読み込まれているのかな?

こんなエラーも。

Feb 04 08:42:55 vs01 systemd[1]: Starting The Apache HTTP Server...
Feb 04 08:42:55 vs01 httpd[26387]: [Tue Feb 04 08:42:55.096137 2020] [so:warn] [pid 26387] AH01574: module systemd_module is already loaded, skipping
Feb 04 08:42:55 vs01 httpd[26387]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:443
Feb 04 08:42:55 vs01 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Feb 04 08:42:55 vs01 kill[26388]: kill: cannot find process ""
Feb 04 08:42:55 vs01 systemd[1]: httpd.service: control process exited, code=exited status=1
Feb 04 08:42:55 vs01 systemd[1]: Failed to start The Apache HTTP Server.
Feb 04 08:42:55 vs01 systemd[1]: Unit httpd.service entered failed state.
Feb 04 08:42:55 vs01 systemd[1]: httpd.service failed.

あれ、443ポートがすでにバインドされている??? もしや、デフォルトのssl.confが勝手に読み込まれてしまっている?

こういうことがあるので、まず最初に開発環境で試してから、本番環境もアップデートしましょう。

CentOSのバージョンの確認

以下のコマンドで、最新版にアップデートされているか確認してみましょう。

cat /etc/redhat-release

最新版になっていますね。

CentOS Linux release 7.7.1908 (Core)

CentOS+PerlでWebシステム開発 環境構築のご紹介