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でも利用できるため、起こりうる不具合やエラーが多岐にわたります。
エラーが起こってしまった場合は、一つ一つエラーメッセージを追ってみましょう。
今回紹介した例のようにリネームや削除だけで対応できるかもしれません。
もし自力で対応できないという場合は以前私が書いた以下の記事を参考にして、対応してみてください。