Apache 2.2 は IPv6 アドレスでは起動しません

Apache 2.2 は IPv6 アドレスでは起動しません

特定のフォルダーでローカルホストのみを許可しようとしていますが、ipv4 ( Allow from 127.0.0.1) では完璧に動作しますが、ipv6 ( ) を追加するとすぐにAllow from [::1]Apache が起動しなくなります。

確認したerror.logところ、次のように書かれています:

指定された IP アドレスは無効です。

すでに圧縮形式なしで IPv6 アドレスを入力しましたが、それでも機能しませんでした。

私は Apache 2.2.25、Windows 8.1 を使用しています。私のコンピューターでは IPv6 が有効になっています。

答え1

IPv6 アドレスを括弧で囲む表記は、アドレスとオプションのポート番号が混同される可能性がある場合にのみ使用されます。

一例としては、Listenディレクティブ。アドレスとポートの両方を指定できるため、混乱を避けるために括弧を追加する必要があります。は、とのListen 2001:db8::1:8080両方を意味する可能性があるため無効です。括弧によりそれが明示されます。Listen [2001:db8::1]:8080Listen [2001:db8::1:8080]

のためにAllow fromディレクティブではそうではありません。アドレスを指定する場合、それは常にポート番号のないアドレスです。したがって、Allow from 2001:db8::1:8080決して曖昧ではありません。常に IPv6 アドレスです2001:db8::1:8080

括弧 ( Allow from ::1) を省略すると動作するはずです。

答え2

<VirtualHost *:80>仮想ホストは、IPv4 と IPv6 の両方のアクセスを許可するように次のように定義する必要があります。

また、Apache のドキュメントでは、ipv6 制限に次の形式が使用されています。 Allow from 2001:db8::a00:20ff:fea7:ccea Apache ドキュメント

関連情報