さくらの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が自動で起動するようになりました。