Windows7マシンでApache2.4.10を実行していて、SSL接続を追加しようとしています。ポート80の接続は正常に機能し、ポート443を追加しようとしています。httpd.confにListen 443
が追加されると、起動に失敗します。
c:\Apache24\bin> httpd.exe -k start
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address [::]:443
(OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted. : AH00072: make_sock: could not bind to address 0.0.0.0:443
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs
netstat
を使用したチェックでは、最初にChromeポート443を使用していることが明らかになったので、Chromeを終了し、タイムアウトが経過した後、ポートは現在netstat
を使用して空にしますが、Listen 443
が存在する場合でもサーバーは起動に失敗します:
c:\Apache24\bin> netstat -ano | grep 443
誰がすでにポート443を使用していて、Apacheサーバーがそのポートを使用するのをブロックしているのかを確認するにはどうすればよいですか?
この問題は、2つのListen 443
ディレクティブがあり、1つは追加したものともう1つはincludeを介したものであるため、Apacheがそれ自体と競合しているようです。
<IfModule ssl_module>
#Include conf/extra/httpd-ssl.conf
Include conf/extra/httpd-sni.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
conf/extra/httpd-ssl.conf
に、競合する行が表示されます。
Listen 443 https
追加したListen 443
を削除すると、問題が解決しました。
c:\ Apache24\bin> netstat -ano | grep 443
次のように、すべてのprocessIdバインド443が一覧表示されます。
TCP xxx:xxx xxx:443 ESTABLISHED 4332
TCP xxx:xxx xxx:443 ESTABLISHED 7164
次に実行します:
c:\ Apache24\bin>タスクリスト| grep -e "4332" -e "7164"
すべてのプロセスをID別に一覧表示します。お気に入り:
MyPopo.exe 4332 Console 1 87,424 K
firefox.exe 7164 Console 1 522,576 K
SysinternalsのTcpviewは、どのプログラムがポートを使用しているかなど、ネットワーク関連のすべてのものを表示します。
http://live.sysinternals.com