由于服务器端口配置问题,无法启动 HTTPD

由于服务器端口配置问题,无法启动 HTTPD

我的httpd.conf显示它正在监听端口 80。我想我应该将 IP 更改为我的机器的 IP,但我不确定并且明智地犹豫了。

#Listen 12.34.56.78:80
Listen 80

但是我的虚拟主机显示端口 443,我该如何更改?这是我的问题根源吗?

更新

'虚拟主机默认:443' = /etc/httpd/conf.d/ssl.conf

这告诉我虚拟主机是正确的。我觉得我可以从这个场景中排除所有与 443 相关的信息来得到答案。

/etc/httpd/conf.d/ssl.conf:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf:#ServerName www.example.com:443
/etc/httpd/conf.d/ssl.conf.rpmnew:Listen 443 https
/etc/httpd/conf.d/ssl.conf.rpmnew:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf.rpmnew:#ServerName www.example.com:443

Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xe" for details.

我正在努力学习类似的主题。我用的是 Fedora,因此理解起来有点不同。

systemctl status httpd.service说:

httpd[1182]: AH00526: Syntax error on line 18 of /etc/httpd/conf.d/ssl.conf:

第 18 行说 | 收听 80

httpd[1182]: Cannot define multiple Listeners on the same IP:port

systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE

systemd[1]: httpd.service: Failed with result 'exit-code'.

systemd[1]: Failed to start The Apache HTTP Server.

/etc/httpd/conf.d.ssl.conf 第 18 行 |Listen 80

这是我感到困惑的地方,因为grep '443' /etc/httpd/conf.d/* 我的文件显示ssl.conf为 443,但当我读取httpd.conf文件时,我看到这12.34.56.78:80是一个预防性 IP。因此,我应该在此处添加我的机器 IP 并监听 80 和 443。

答案1

该错误似乎表明您Listen的 Apache 配置文件中可能有多个指令指定相同的 IP/端口 80 组合。

Listen(一般规则)应该只在httpd.conf(例如Listen 80) 中出现一次,并且在默认 SSL 配置中 (例如Listen 443) 应该只出现一次。

虽然可以Listen在同一个端口(例如 80)上有多个指令,但它们都必须具有不同的 IP:端口组合。

Listen因此我应该在这里以及80 和 443 上添加我的机器的 IP 。

阿帕奇指令可以采用两种通用形式:“每个 IP”和“全局”(所有可用的 IP):

# Per IP
# Listen 12.34.56.78:80

# Global (i.e includes ex. 12.34.56.78)
Listen 80

上面的配置有效。通常,类似下面的配置也能正常工作(假设您的系统有多个 IP):

# Per IP
Listen 12.34.56.78:80
Listen 23.56.78.90:80

# Global (i.e includes ex. 12.34.56.78)
# Listen 80

这很可能不起作用(即 Apache 将无法启动):

# Per IP
Listen 12.34.56.78:80

# Global (i.e includes ex. 12.34.56.78)
Listen 80

相关内容