我正在 Apache/2.4.6 RHEL 服务器上设置 SSL。在 中httpd.conf
,有如下所示的 VirtualHosts...
<VirtualHost *:80>
ServerName foo.bar
Redirect permanent / https://foo.bar
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /path/to/file
ServerName foo.bar
SSLEngine on
SSLCertificateFile /path/to/file
SSLCertificateKeyFile /path/to/file
SSLCertificateChainFile /path/to/file
</VirtualHost>
当我在 httpd.conf 中的 VirtualHosts 之外注释掉 DocumentRoot 时,Web 浏览器返回错误 404The requested URL / was not found on this server.
我需要在 之外有一个 DocumentRoot 吗VirtualHost *:443
?如果不需要,那么当我将其注释掉时会发生什么?
答案1
您将在某些 apache 配置中定义一个 DocumentRoot,但服务器可能无法访问它,您可以通过针对 RHEL 版本发出以下命令来检查这一点:
/usr/sbin/httpd -S
和 Debian
/usr/sbin/apache2ctl -S
它应该包含一个变量:
Main DocumentRoot: "/var/www/html"
您可以调整这个或在虚拟主机部分设置一个(我更喜欢这个,设置为与 SSL vhost 相同)。
答案2
事实证明,我单独错误地设置了 ssl.conf。修复了 ssl.conf,并从 httpd.conf 中删除了 443 的 VirtualHost,一切运行正常!