「KUSANAGI」 ワンポイントTips Apache利用でアップデートしたら再起動できなくなったときの対処法

遠藤進悟

Apacheを利用してKUSANAGIをアップデートしようとした時、再起動エラーが発生するケースとその解決策について解説します。ssl.confが復活し、IPとポートが重複するためにエラーが起きることが判明。リネームや削除によりエラーを解決します。KUSANAGIのエラー対応はこれを参考に、自力でも可能です。

KUSANAGIはデフォルトでNginxの利用になっていますが、動作条件のためにApacheでの利用に変更している人も多いかと思います。

Apacheで利用しているという場合に、アップデートをかけるとプロセスの再起動がエラーになってしまうことがあったので、その対処法を紹介します。

エラー内容と条件

サーバのアップデートを行うために以下のコマンドを実行します。

yum -y update

CentOSやKUSANAGI、その他のシステムのアップデートもこのコマンドで行うことができるのですが、この処理が終わったあと、アップデートを反映させるためにKUSANAGIをリスタートしようとすると・・・

kusanagi restart // KUSANAGIのリスタート

Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

このようにエラーメッセージが出てしまうことがあります。

エラーメッセージにあるようにコマンドで確認してみると

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 水 2017-12-20 16:25:41 JST; 25s ago
  Process: 8693 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)

12月 20 16:25:41 kusanagi71 systemd[1]: Starting The Apache HTTP Server...
12月 20 16:25:41 kusanagi71 apachectl[8693]: [Wed Dec 20 16:25:41.738676 2017] [so:warn] [pid 8695] AH01574: module headers_module is already loaded, skipping
12月 20 16:25:41 kusanagi71 apachectl[8693]: AH00526: Syntax error on line 5 of /etc/httpd/conf.d/ssl.conf:
12月 20 16:25:41 kusanagi71 apachectl[8693]: Cannot define multiple Listeners on the same IP:port
12月 20 16:25:41 kusanagi71 systemd[1]: httpd.service: control process exited, code=exited status=1
12月 20 16:25:41 kusanagi71 systemd[1]: Failed to start The Apache HTTP Server.
12月 20 16:25:41 kusanagi71 systemd[1]: Unit httpd.service entered failed state.
12月 20 16:25:41 kusanagi71 systemd[1]: httpd.service failed.

このような表示が出ます。

どうやらサーバのアップデート時にApacheのデフォルトに利用されるssl.confが復活してしまっていることが原因のようです

対処法

SSLの設定ファイルに問題があることがわかりましたので、対応します。
これは単純にIPとポートが重複して定義されているからエラーですと言われてしまっているので、使っていないssl.confを削除またはリネームします。

mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bk

リネーム後のファイル名は各自変えてください。
これでKUSANAGIのリスタートができるようになります。

まとめ

KUSANAGIはNginxでもApacheでも利用できるため、起こりうる不具合やエラーが多岐にわたります。
エラーが起こってしまった場合は、一つ一つエラーメッセージを追ってみましょう。

今回紹介した例のようにリネームや削除だけで対応できるかもしれません。
もし自力で対応できないという場合は以前私が書いた以下の記事を参考にして、対応してみてください。

KUSANAGIを利用していて困ったら?

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解