Apacheが提供するWebサイトがあります。 IPv4では機能しますが、IPv6では機能しません。 500エラーがあります。
これが私のports.confファイルです:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/Apache2/sites-enabled/000-default.conf
Listen 80
NameVirtualHost *:80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
そして私のVHost:
<VirtualHost *:80 [::]:80>
DocumentRoot "/var/www/html/mysite.ca/www.mysite.ca"
ServerName mysite.ca
<Directory "/var/www/html/mysite.ca/www.mysite.ca">
allow from all
Options +Indexes
</Directory>
ServerAlias www.mysite.ca
</VirtualHost>
私がする時 netstat-tlnpt
、私はこれを持っています:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3577/master
tcp 0 0 0.0.0.0:453 0.0.0.0:* LISTEN 4484/Perl
tcp 0 0 0.0.0.0:360 0.0.0.0:* LISTEN 3254/sshd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3307/mysqld
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2923/vsftpd
tcp6 0 0 ::1:25 :::* LISTEN 3577/master
tcp6 0 0 :::443 :::* LISTEN 7240/Apache2
tcp6 0 0 :::360 :::* LISTEN 3254/sshd
tcp6 0 0 :::80 :::* LISTEN 7240/Apache2
ApacheはすでにIPv6アドレスをリッスンしているようです。
追加しようとしました:
Listen [::]:80
Listen [::]:443
私のポートファイルに、しかし私がApacheを再起動するとこの結果があります:
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:443
静的アドレスでワイルドカーを変更しようとしましたが、同じ問題が発生します。
同じサーバー上でIPv6で動作する他のWebサイトがあります。これが機能しない唯一のものです。
私に何ができる ?
Apache2が完全にシャットダウンされていることを確認してください。おそらく、サービスを管理しているものはすべて、バックグラウンドで手動で起動されたコピーについて知りません。 (停止する必要があるときにnetstatを実行し、まだ何もリッスンしていないことを確認してください)
Apacheのバージョンによっては、NameVirtualHostも必要ない場合があります。 https://httpd.Apache.org/docs/current/upgrading.html を参照してください
500エラーが発生した場合は、ポートで何かが確実にリッスンして応答しています。これはerror.logに記録する必要があります。そうでない場合は、ログオプションを調整して含める必要があります。 Apache2.2と2.4のどちらを実行しているかを示すものは何も表示されず、ロギング構成が2つで異なります。
編集:LogLevelについてはこのページを参照してください https://httpd.Apache.org/docs/2.4/mod/core.html#loglevel
Listen
onceperportper [〜#〜] ip [〜#〜]サーバーごとの完全な構成ごとに、文句を言わずに開始するまで、知っているものをコメントアウトしてください。ポート80/443でまだ開始されているかどうかを確認します
ipv6およびipv4、 必要なのは
listen 80
listen 443 https
find /etc/httpd/ | xargs grep -sniH "listen"
これはnetstatの出力に表示されます。
tcp6 0 0 ::: 443 ::: * LISTEN 3254/sshd
つまり、IPv6のポート443でリッスンしているsshプロセスがあり、実際にApacheはそのポートにバインドできません。
(98)アドレスはすでに使用されています:AH00072:make_sock:アドレスにバインドできませんでした[::]:443