どのポートでもApacheを起動できないようです。常にエラーが発生します。
apache2(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
netstat -plant|grep 80
私は実行に問題がないことを確認するためにポート80で何も実行されていないことを確認しました。sudo nc -l 80
私はこれが権限の問題かもしれないと思いました(initscriptから始める必要があるので、それは必要ありません)。そのため、Apacheの受信ポートを8080を除いて8080に変更しましたが、同じエラーが発生しました(何も実行されませんでした)。ポート)。それらのアドレスとポートが表示されることを除いて、ほとんど同じエラーが発生するように設定しようとしましたが、ports.conf
まだ発生します。Listen 127.0.0.1:80
Listen 127.0.0.1:8080
私はDebian Unstableを使用していることを指摘したいと思います。
この時点では、何をさらに確認するのかわかりません。
答え1
あなたのstraceファイルであなたの質問は次のとおりです。
[pid 23020] setsockopt(5, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
[pid 23020] setsockopt(5, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
[pid 23020] setsockopt(5, SOL_IPV6, IPV6_V6ONLY, [0], 4) = 0
[pid 23020] setsockopt(5, SOL_TCP, TCP_NODELAY, [1], 4) = 0
[pid 23020] bind(5, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
[pid 23020] listen(5, 511) = 0
[pid 23020] setsockopt(7, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
[pid 23020] setsockopt(7, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
[pid 23020] setsockopt(7, SOL_IPV6, IPV6_V6ONLY, [0], 4) = 0
[pid 23020] setsockopt(7, SOL_TCP, TCP_NODELAY, [1], 4) = 0
[pid 23020] bind(7, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EADDRINUSE (Address already in use)
[pid 23020] write(2, "(98)Address already in use: AH00"..., 82(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
) = 82
bind
あなたはそれが呼び出されていることがわかります二重。初めて動作します。 2番目は、アドレスがすでに使用されていたので失敗しました。つまり、ちょうどバインドされたからです。
Listen 80
私のApache設定(DebianのApache 2.4テスト/不安定)では、2つの設定でこれを達成できることがわかりました。私はあなたも同じことをしたか、非常に似たようなことをしたと思います。
答え2
あなたの問題は、IPV4ではなくIPV6アドレスをバインドする試みに関連しているようです。はい Apache は IPv6 を構成していないため、::1 と 127.0.0.1 にバインドしようとします。つまり、127.0.0.1に2回バインドしようとします。解決策:
localhostがIPv4 IP(getentホストlocalhost)であることを確認してください。
IPv6(特にlocalhostアドレス)を使用していない場合は、/ etc / hostsを確認してすべてのIPv6アドレスを削除してください。
更新できない場合は、名前の代わりにIPを/etc/hosts
変更httpd.conf
またはバインドします(127.0.0.1:80で受信)。ports.conf
答え3
エラーメッセージであると判断した場合、ApacheはIPv6を使用してバインドを試みています。ホストでIPv6が有効になっていますか?