我刚刚在我的 AWS 实例(运行 Linux AMI)上将 Apache 更新到 2.4.3。更新完成后,Apache 崩溃,并出现以下情况:
Starting httpd: AH00526: Syntax error on line 5 of /etc/httpd/conf.d/ssl.conf:
Cannot define multiple Listeners on the same IP:port
我进入上述文件并注释掉第 5 行:#Listen 443
,因为新文件httpd.conf
包含一行已经设置了上述监听器:
httpd.conf:
40 ...
41 #Listen 12.34.56.78:80
42 Listen 80
43 Listen 443
44
45 ...
我的问题是,如果我在 VirtualHost 的配置文件中单独配置 SSL 证书,我是否可以注释掉 httpd/conf.d/ssl.conf 中的每一行?我的意思是,将其包含在内是否仍然很重要?为什么 Apache 2.4.3 设置了Listen 443
两次?
谢谢!
答案1
我在不同的文件上遇到了同样的错误
AH00526: Syntax error on line 18 of /private/etc/apache2/other/httpd_xcs.conf:
Cannot define multiple Listeners on the same IP:port
我刚刚评论了#Listen 443,效果很好。
答案2
我在安装了 Apache 2.4 的 Windows 10 Server 下遇到了这个问题。问题在于只允许一个端口绑定。
默认httpd配置文件最后有以下部分:
<IfModule ssl_module>
Listen 443
Include conf/extra/httpd-ssl.conf
Include conf/extra/httpd-ahssl.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
<IfModule http2_module>
ProtocolsHonorOrder On
Protocols h2 h2c http/1.1
</IfModule>
如您所见,第二行有一个端口绑定,和Listen 443
中还有另外两个端口绑定。conf/extra/httpd-ssl.conf
conf/extra/httpd-ahssl.conf
httpd.conf
您可以在包含的配置文件中或内部注释掉相应的端口绑定。
答案3
您可以通过以下方式检查哪个文件占用了哪个端口:
sudo grep -r “监听” /etc/apache2/
然后注释掉已被多次监听的端口(你不想要的)以消除冲突