启用httpd-vhosts.conf后,WAMP服务器无法运行

12

我尝试在我的WAMP安装上启用虚拟主机,但如果我启用http-vhosts.conf,则WAMP服务器无法运行,图标仍然是橙色。

这是我的 hosts 文件:

127.0.0.1       localhost
127.0.0.1       test.localhost

我的httpd.conf文件:

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

我的httpd-vhosts.conf文件内容如下:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/test"
    ServerName test.localhost
</VirtualHost>

如果我将VirtualHosts添加到我的httpd.conf中,它可以正常工作,但我注意到,如果我注释掉“Include conf/extra/httpd-vhosts.conf”,Apache服务器将无法运行。是什么导致了这个问题?

谢谢。


10
进入你的Apache文件夹,从命令行运行httpd.exe,它会显示错误。 - scalopus
你可以在http://serverfault.com/上获得更好的帮助-该网站更加专注于实际编程方面。 - Gary
你为什么要注释掉 "Include conf/extra/httpd-vhosts.conf",难道你不想取消注释吗?另外,请检查你的错误日志。 - user1508216
3个回答

20
为了确定出现错误的确切行,请按照以下步骤操作:
  1. 进入开始菜单
  2. 输入 "cmd"
  3. 按回车键
  4. 粘贴以下命令 C:\wamp\bin\apache\apache2.2.22\bin\httpd.exe

注意:您可能需要根据本地Apache版本调整路径中的 apache2.2.22 部分。


11

好的,我觉得我有责任把这个问题解决...

我也曾疯狂地检查表格,并执行像 Listen *:80NameVirtualHost *:80等操作,但发现这是不必要的,对我来说默认设置就很好。

问题出现在我尝试放入我的虚拟主机声明时。

<VirtualHost 127.0.0.1>
    DocumentRoot 'c:\wamp\www\media_weber_edu\public'
    ServerName media.weber.dev
    <Directory 'c:\wamp\www\media_weber_edu\public'>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
    <\Directory>
</VirtualHost>

问题就在这里

<\Directory></Directory> 的区别

发现问题的巨大帮助是运行 C:\wamp\bin\apache\apache2.2.22\bin\httpd.exe

这给了我以下错误信息

httpd.exe: Syntax error on line 469 of C:/wamp/bin/apache/apache2.2.22/conf/httpd.conf: Syntax error on line 42 of C:/wamp/bin/apache/apache2.2.22/conf/extra/httpd-vhosts.conf: Expected </\\Directory> but saw </VirtualHost>

所以这可能不是确切的问题,但我希望这能帮助未来的人。深呼吸一下……把头发粘回去……一切都会好的 :)


2
运行httpd.exe的好建议! - Derek

0

你只需要像这样更改它:一切都会没问题的。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
#    DocumentRoot "c:/wamp/www"
    ServerName localhost
#    ErrorLog "logs/localhost-error.log"
#    CustomLog "logs/localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
#    DocumentRoot "c:/wamp/www/test"
#    ServerName test.localhost
</VirtualHost>

如果有人遇到目录错误,他可能需要按以下方式进行修改:

<VirtualHost 127.0.0.1>
#    DocumentRoot 'c:\wamp\www\media_weber_edu\public'
     ServerName media.weber.dev
#    <Directory 'c:\wamp\www\media_weber_edu\public'>
#        Options Indexes FollowSymLinks MultiViews
#       AllowOverride all
#    <\Directory>
</VirtualHost>

注意:Apache不允许多个<Directory>参数!

multiple <Directory> arguments error screenshot:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接