mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux - Apache 再起動で Address already in use!

[ サーバ構築 ] [ Apache, Linux ]

先日、自宅サーバの Apache2 を再起動しようとしたら、以下のようなエラーが出力されて起動できませんでした。

1
2
3
4
5
6
# /etc/rc.d/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
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

他のプロセスがポート 80 を既に使用している場合に出力されるエラーメッセージのようです。

httpd が正常に停止できなったなら、起動時にエラーになるのも納得できるのですが・・・ httpd は正常に停止できているのに、ポート 80 が解放されないとは何か別のことが原因かもしれません。

とりあえず、以下解決方法です。

1.Apache 使用状況の確認

Apache の使用状況を確認します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# lsof -i | grep http
httpd     10915 apache    4u  IPv6  11197      0t0  TCP :http (LISTEN)
httpd     10915 apache    6u  IPv6  11201      0t0  TCP :https (LISTEN)
httpd     10918 apache    4u  IPv6  11197      0t0  TCP :http (LISTEN)
httpd     10918 apache    6u  IPv6  11201      0t0  TCP :https (LISTEN)
httpd     10919 apache    4u  IPv6  11197      0t0  TCP :http (LISTEN)
httpd     10919 apache    6u  IPv6  11201      0t0  TCP :https (LISTEN)
httpd     10921 apache    4u  IPv6  11197      0t0  TCP :http (LISTEN)
httpd     10921 apache    6u  IPv6  11201      0t0  TCP :https (LISTEN)
httpd     10922 apache    4u  IPv6  11197      0t0  TCP :http (LISTEN)
httpd     10922 apache    6u  IPv6  11201      0t0  TCP :https (LISTEN)
httpd     10923 apache    4u  IPv6  11197      0t0  TCP :http (LISTEN)
httpd     10923 apache    6u  IPv6  11201      0t0  TCP :https (LISTEN)
httpd     10924 apache    4u  IPv6  11197      0t0  TCP :http (LISTEN)
httpd     10924 apache    6u  IPv6  11201      0t0  TCP :https (LISTEN)

こんなに?

2.プロセスの停止

以下のようにして、使用中のプロセスを停止します。

1
2
3
4
5
6
7
# kill 10915
# kill 10918
# kill 10919
# kill 10921
# kill 10922
# kill 10923
# kill 10924

3.Apache の使用状況の再確認

プロセスが停止されたか、再度確認してみます。

1
# lsof -i | grep http

何も出力されなければ OK です。


これで、Apache が起動できるようになりました。

以上。

Comments