Apacheを起動するときに、ほかのプロセスによってポートが使用されていた場合

Apacheを起動するときに次のようなエラーが出て、起動できない場合の対処法です。

[参考記事] Windowsの場合 ほかのアプリケーションにポートを使用されてApacheが起動できない
WindowsではSkypeによって80ポートを使用されていることがあります。

# /usr/local/apache2/bin/apachectl start
(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

これはポート80が使用されていて、起動できないということです。SSLを使用しているときはポート443も該当することがあります。

1つの理由としては、別のバージョンのApacheが起動していることがあります。

ps aux | grep apache

ポートを使用しているプロセスを確認します。

netstat -an | grep 80

tcp        0      0 0.0.0.0:80                0.0.0.0:*                 LISTEN
tcp        0      0 xxx.xxx.xxx.xxx:80        zzz.zzz.zzz.zzz:57300     TIME_WAIT
tcp        0      0 xxx.xxx.xxx.xxx:80        zzz.zzz.zzz.zzz:45542     TIME_WAIT
tcp        0      0 xxx.xxx.xxx.xxx:80        zzz.zzz.zzz.zzz:55807     FIN_WAIT1
tcp        0      0 xxx.xxx.xxx.xxx:80        zzz.zzz.zzz.zzz:51955     TIME_WAIT

このように出るときには、Apacheが停止していても、アクセスがあり反応待ちの状態が考えられます。

ポートを使用しているプロセス番号の一覧を表示するには次のようにします。

/sbin/fuser -n tcp 80

80/tcp:              4316  4749  4750  4751  4752  4753

次のコマンドで、まとめてプロセスを停止させることができます。

/sbin/fuser -kn tcp 80

プロセス番号を個別にkillコマンドで停止することも可能です。

またkillコマンドを実行しても停止しないときには、『-9』を付けて、停止します。

関連記事

スポンサーリンク

CHARINDEX関数 文字列中の文字列を検索する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る