/etc/httpd/conf.d/vhost.conf 中的虚拟主机配置错误

Posted

技术标签:

【中文标题】/etc/httpd/conf.d/vhost.conf 中的虚拟主机配置错误【英文标题】:wrong vhost configuration in /etc/httpd/conf.d/vhost.conf 【发布时间】:2015-03-25 22:06:53 【问题描述】:

我在/etc/httpd/conf.d/vhost.conf 的虚拟主机配置如下所示:

NameVirtualHost *

<VirtualHost *>
        ServerName www.example.com
        DocumentRoot /var/www/html/site
</VirtualHost>

<VirtualHost *> 
    ServerName en.example.com 
    DocumentRoot /var/www/html/english
</VirtualHost>

<VirtualHost *> 
        ServerName photo.example.com
        DocumentRoot /var/www/html/photo
</VirtualHost>

<VirtualHost *> 
        ServerName music.example.com
        DocumentRoot /var/www/html/music
</VirtualHost>

<VirtualHost *> 
        ServerName video.example.com
        DocumentRoot /var/www/html/video
</VirtualHost>

现在,只有www.example.com/var/www/html/site 显示正确的站点。所有其他子域都提供500 internal server error。我做错了什么?


更新: 真的很抱歉,伙计们...我的域名人向我确认我的域名已正确路由到我的 IP 地址....只有在我做了dig en.example.com(我应该早点做的事情)之后我才做意识到我的域名人犯了一个愚蠢的错误配置......网址甚至没有到达我的IP地址......真的很抱歉给大家带来麻烦:( :( - 这个vhost.conf文件没问题

【问题讨论】:

您是否启用了a2ensite 的新网站?为不同的虚拟主机使用单独的文件也是一种很好的做法。 我没有使用任何a2ensite 嗯,基本上这取决于您使用的发行版。但是基于 debian 的发行版使用的文件系统在 /etc/apache2 下有一个文件夹 sites-available,您应该在其中为每个主机创建一个 .conf 文件。然后,当您执行 come a2ensite 时,它​​会在另一个名为 sites-enabled 的文件夹中创建一个符号链接,该文件夹是启用 Vhost 的文件夹。那么你只需要重新加载apache服务。 通过apache docs :: VirtualHost Examples 我真的很抱歉,伙计们......我的域名人向我确认我的域名被正确路由到我的 IP 地址......只有在我做了 dig en.example.com 之后(我应该这样做之前已经做了很多)我是否意识到我的域名人犯了一个愚蠢的错误配置......网址甚至没有到达我的IP地址......真的很抱歉伙计们:(:( 【参考方案1】:
# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
        ServerName www.example.com
        DocumentRoot /var/www/html/site
</VirtualHost>

<VirtualHost *:80> 
    ServerName en.example.com 
    DocumentRoot /var/www/html/english
</VirtualHost>

<VirtualHost *:80> 
        ServerName photo.example.com
        DocumentRoot /var/www/html/photo
</VirtualHost>

<VirtualHost *:80> 
        ServerName music.example.com
        DocumentRoot /var/www/html/music
</VirtualHost>

<VirtualHost *:80> 
        ServerName video.example.com
        DocumentRoot /var/www/html/video
</VirtualHost>

【讨论】:

以上是关于/etc/httpd/conf.d/vhost.conf 中的虚拟主机配置错误的主要内容,如果未能解决你的问题,请参考以下文章