我已将 2 个虚拟主机添加到我的 apache2 conf 文件中,如下所示:
<VirtualHost *:80>
DocumentRoot /var/www/html/site1
ServerName www.site1.com
ServerAlias site1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/site2
ServerName www.site2.com
ServerAlias site2.com
</VirtualHost>
重新启动 Apache 后出现错误:
[警告]默认VirtualHost 在 80 端口上重叠,第一个优先
在谷歌上搜索,他们说取消注释下面这行,所以我这样做了:
NameVirtualHost *:80
重新启动,现在我没有收到错误,但是两个站点都转到第一个站点。
运行 Centos5。我该如何修复此问题?
答案1
您肯定希望取消注释 NameVirtualHost。这会告诉您的服务器根据用于访问它的域名为不同的虚拟主机提供服务。这就是为什么当删除第一个站点时,您会看到所有请求都转到第一个站点。
答案2
我已经用 CWP 修复了这个问题
只需转到 /usr/local/apache/conf/sharedip.conf
检查一下,把*放到你的IP服务器里
NameVirtualHost *:80
<VirtualHost *:80>
ServerName yourdomainserver.ltd
DocumentRoot /usr/local/apache/htdocs
ServerAdmin [email protected]
<IfModule mod_suphp.c>
suPHP_UserGroup nobody nobody
</IfModule>
</VirtualHost>
<Directory "/">
AllowOverride All
Allow from all
Order Deny,Allow
</Directory>
然后转到 /usr/local/apache/conf.d/vhost.conf 并确保每个虚拟主机都像这样
# vhost_start chango.com.ve
<VirtualHost *:80>
ServerName yourdomain.ltd
ServerAlias www.yourdomain.ltd
ServerAdmin [email protected]
DocumentRoot "/home/yourdomain/public_html"
ScriptAlias /cgi-bin/ "/home/yourdomain/public_html/cgi-bin/
#
# Custom settings are loaded below this line (if any exist)
# Include "/usr/local/apache/conf/userdata/yourdomain/yourdomain.ltd/*.conf
</VirtualHost>^M
# vhost_end yourdomain.ltd
这对我有用!