无法使虚拟主机工作,请查看我做错了什么(CentOS 6.0)

无法使虚拟主机工作,请查看我做错了什么(CentOS 6.0)

vhost.conf ,位于 etc/httpd/vhost.d/

NameVirtualHost *:80

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName localhost
         ServerAlias localhost.example.com
         DocumentRoot /var/www/html/example.com/public_html/
         ErrorLog /var/www/html/example.com/logs/error.log
         CustomLog /var/www/html/example.com/logs/access.log combined
    </VirtualHost>

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName example.org
         ServerAlias www.example.org
         DocumentRoot /var/www/html/example.org/public_html/
         ErrorLog /var/www/html/example.org/logs/error.log
         CustomLog /var/www/html/example.org/logs/access.log combined
    </VirtualHost>

httpd.conf,默认设置,添加到最后:

Include /etc/httpd/vhosts.d/*.conf

根目录:

DocumentRoot "/var/www/html"

在上述文件夹中创建的虚拟主机的相应目录。所有权限看起来都正确。每个public_html目录中都有 Index.php 文件。但是,当我输入 localhost 时,它只会将我带到默认的 apache 2 页面,我是否应该从默认目录中删除行Include /etc/httpd/vhosts.d/*.confwebserver works as required,为我放在那里的任何索引文件提供服务。

答案1

根据输入的内容,您似乎没有语法错误。因此,请在 /etc/hosts 文件中执行以下操作(如果您直接从服务器执行此操作):

127.0.0.1   example.org
127.0.0.1   example.com

或者在你电脑的主机文件上:

YOURSERVERIP  example.org
YOURSERVERIP  example.com

并浏览到该域而不是本地主机。

您之所以只看到 apache 网页,是因为 Apache 需要知道要访问哪个页面 - 由于您尚未设置 DNS,因此不会向 Apache 发送任何与相关主机名相关的内容,因此它默认为文档根目录。

答案2

由于 Include 行位于 VirtualHosts 之后,我猜想其中一个包含的虚拟主机正在覆盖您的新虚拟主机。“httpd -S”说了什么?(它可能不是“httpd”,可能是“apache2”或其他内容)。-S 标志将显示您已配置的所有虚拟主机,并有助于调试。

您可以尝试删除包含行,看看这是否能让您的新块工作。您还可以检查错误日志,看看是否有关于您的配置文件的警告。

相关内容