0

我正在尝试让动态虚拟主机工作,按照文档进行操作,但效果不佳。

这些是我的 HOSTS 文件中的域:

127.0.0.1 walestourism.local.co.uk
127.0.0.1 www.walestourism.local.co.uk
127.0.0.2 walestourism.local.co.uk
127.0.0.2 www.walestourism.local.co.uk

这是来自httpd.conf:

NameVirtualHost 127.0.0.2
<VirtualHost 127.0.0.2>
ServerName www.walestourism.local.co.uk
ServerAlias walestourism.local.co.uk
DocumentRoot /www/walestourism.local.co.uk
ScriptAlias /cgi-bin/ /www/walestourism.local.co.uk/cgi-bin
</VirtualHost>

在我的所有其他代码中,上述代码的 VirtualHost 部分始终为 *:80。

我的 httpd.conf 中有这段代码:

<Directory C:/www/vhosts>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>
<Directory C:/www/vhosts1>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>
<Directory C:/www/vhosts.www>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>
<Directory C:/www/test2>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>
<Directory C:/www/>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>

我应该如何解决此错误,因为当我在其中键入域时,它会将我带到http://localhost的内容?这是我尝试使用动态虚拟主机添加域时遇到的基本问题。

另外,如果我将浏览器指向“http://localhost/”,我会得到默认的“It Works!” 页面,所以我知道我的服务器正在运行,这肯定与 vhosts 配置有关。

我检查了我的错误日志 - 因此没有错误,那么为什么每个域都指向 localhost,即使为它们配置了一个文件夹(/www/ 在这种情况下是 C:/www,我的 Apache/webserver 的目录)。

我是 Apache 这个领域的新手,尽管谷歌搜索了一个下午,但我不知道如何解决这个问题。

我决定尝试这样做以避免每次添加新的虚拟主机进行测试时都执行 cmd > httpd -k restart ,但是我做错了什么吗?

我在 Apache 2.2 上,使用 Windows 7,使用 PHP 5.28 [在此处提及规范]。

我该怎么办?

非常感谢所有建议!

4

2 回答 2

0

当您使用基于命名的虚拟主机时,不要使用 127.0.0.2 ...只需将其全部保留为 127.0.0.1 ...如果失败,请检查 apache 的 error_log(在您的 httpd.conf 中定义)以排除故障原因它失败了。

此外,在你开始使用 PHP之前,让 Apache2 在 Windows 上使用 VHosts 工作......

根据http://httpd.apache.org/docs/2.0/vhosts/examples.html

 # Ensure that Apache listens on port 80
 Listen 80

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

 <VirtualHost *:80>
 DocumentRoot /www/example1
 ServerName www.example1.com
 # Other directives here
 </VirtualHost>

 <VirtualHost *:80>
 DocumentRoot /www/example2
 ServerName www.example2.org
 # Other directives here
 </VirtualHost>
于 2011-10-27T15:58:20.693 回答
0

如果虚拟主机配置错误,通常会发生这种情况。由于您在 Windows 上,我不知道如何测试您的配置,在 linux 上您会执行以下操作:

/etc/init.d/httpd configtest

尝试从命令行启动 apache,看看是否有任何错误。如果 Apache 作为服务安装,您可以在 Windows 应用程序事件日志中看到启动错误。

于 2011-10-27T16:15:43.227 回答