在wamp服务器中托管多个站点

时间:2011-04-28 05:32:37

标签: hosting

我有两个不同的网站,我想通过wamp服务器托管它们,例如,我的第一个网站是http://one.gov.ae,第二个网站是http://two.gov.ae

我想要的是当我输入第一个网站时它应该打开第一个网站的索引,而当我键入第二个网站时,我应该打开第二个网站。

但无论我输入什么,都会打开第一个

的索引

但是我添加两个位于httpd-vhosts.con并取消注释http.conf中的以下行

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

所以任何人都可以告诉我在这种情况下我能做些什么

这是我的httpd-vhosts.conf代码

<VirtualHost 172.20.10.121:80>
   # ServerAdmin admin@localhost
     DocumentRoot "C:/wamp/www"
     ServerName localhost
   # ServerAlias www.dummy-host.localhost
   # ErrorLog "logs/dummy-host.localhost-error.log"
   # CustomLog "logs/dummy-host.localhost-access.log" common
</VirtualHost>

<VirtualHost 172.20.10.121:8080>
   # ServerAdmin webmaster@meera.am.gov.ae
     ServerName meera.am.gov.ae
     DocumentRoot "c:wamp/www/meera"
     Directoryindex index.php index.html
   # ErrorLog "logs/dummy-host2.localhost-error.log"
   # CustomLog "logs/dummy-host2.localhost-access.log" common
</VirtualHost>

我在httpd文件中评论以下内容

# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
#
<FilesMatch "^\.ht">
  #  Order allow,deny
  #  Deny from all
  # Satisfy All
</FilesMatch>

4 个答案:

答案 0 :(得分:1)

  

但无论我输入什么,都会打开第一个

的索引

所以我猜你的服务器也在侦听8080端口。你没有提到那一部分。

问题可能在于您还使用以下内容来实现基于名称的虚拟主机:

NameVirtualHost *

......或

NameVirtualHost 172.20.10.121

这样Apache就可以通过主机名(Host请求标头)来标识主机。如果没有发送主机或在配置中找不到匹配的ServerName,则第一个主机(默认主机)将处理该请求。

虽然我强烈建议你使用基于名称的虚拟主机而不是这个端口疯狂。使用mysite.testjopbsite.testprojectname.test等名称。这样他们都可以在端口80上侦听,您必须为所有主机定义ServerName,enbale name基于我的上述示例之一的虚拟主机,然后在以下位置定义您的NS条目:

c:\windows\system32\drivers\etc\hosts

文件。

修改

你应该在vhosts.conf中使用类似的东西:

NameVirtualHost *

<VirtualHost *>
     ServerName mysite.test

     DocumentRoot "C:/www/mysite.test"
     Directoryindex index.php index.html
</VirtualHost>

<VirtualHost *>
     ServerName theothersite.test

     DocumentRoot "C:/www/theothersite.test"
     Directoryindex index.php index.html
</VirtualHost>

答案 1 :(得分:0)

有很多详细的教程。我有一段时间没有使用WAMP,但这是我上次使用时的指南:http://cesaric.com/?p=255

答案 2 :(得分:0)

我有一段时间没遇到这个问题了,我发现这是一个愚蠢的错误,我没有在httpd服务器上重启。

如果您的/bin链接了PATH目录,则可以尝试从命令提示符运行此命令:

httpd -k restart

希望它有所帮助!干杯:)

答案 3 :(得分:0)

您需要修改.conf以考虑两个独立的虚拟主机。

在下面的示例中,您基本上需要设置ServerName,ServerAlias和其他变量才能将它们分开。

<VirtualHost *>
    ServerAdmin webmaster@example.org
    ServerName  www.example.org
    ServerAlias example.org

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /home/www/www.example.org/htdocs/
</VirtualHost>

<VirtualHost *>
    ServerAdmin webmaster@example.com
    ServerName  www.example.com
    ServerAlias example.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /home/www/www.example.com/htdocs/
</VirtualHost>

希望有所帮助。确保在修改.conf文件之前停止Apache,然后重新启动它。