さくらのVPS再起動時にApacheが起動しない問題((98)Address already in use: make_sock: could not bind to address 0.0.0.0:80)

さくらのVPSを再起動した際に、Apacheが起動しない問題があって悩んでいました。
起動させようとしてコマンドを打つと、以下のエラーが出て起動しないのです。

(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

# service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs   [FAILED]

Googleで調べると、こちらのサイトに解決策が載っていました。
以下のようにします。

# /usr/sbin/lsof -i | grep http
httpd 1646 root 4u IPv6 10967 0t0 TCP *:http (LISTEN)
httpd 1646 root 6u IPv6 10971 0t0 TCP *:https (LISTEN)
# kill 1646
# service httpd start

それにしても原因は何だろうなあと、調査を続けたところ、こちらのサイトに原因が書いてありました。証明書にパスフレーズを設定しているのが原因らしい。解決策としては、パスフレーズを抜くか、SSLPassPhraseDialogを設定してパスフレーズを渡してやればいいみたい。少し悩んだのですが、SSLPassPhraseDialogを使う場合は、スクリプトファイルにパスフレーズを記載しなければならず、それはそれでセキュリティ的にどうなのかなあと思ったので、さくっとパスフレーズを削除することにしました。

# cp server.key server.key.backup
# openssl rsa -in server.key -out new.server.key
# mv new.server.key server.key
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

これでさくらのVPSを再起動したときにも、Apacheが自動で起動するようになりました。

Leave a Reply

Your email address will not be published.