WAMP 服务器:我做错了什么?

WAMP 服务器:我做错了什么?

我是 Web 开发的新手...并且让 WAMPServer 运行是一个障碍,无论用多少次 Google 搜索都无法解决。

当我安装 WAMPServer 时,它运行正常。当我尝试添加本地域名时,它出错了。有人能告诉我为什么吗?

我已尝试过的事情。

C:/Windows/System32/驱动程序/etc/hosts

我补充道

‘127.0.0.1 我.测试站点’

然后,在

C:/wamp/bin/apache/Apache2.2.22/conf/httpd.conf

我已经从中删除了#

'# 包含 conf/extra/httpd-vhosts.conf'

然后,在 C:/wamp/bin/apache/Apache2.2.22/conf/extra/httpd-vhosts.conf 中我添加了

< 目录 C:/WAMPprojects>
命令拒绝,允许
所有
</ 目录>

<VirtualHost *:80>
DocumentRoot “C:/WAMPprojects/Hermes”
服务器名称 my.testsite
</VirtualHost>

当我在地址栏中输入 my.testsite 时,我希望看到 Hermes 文件夹中 index.html 页面的内容。

全新安装 WAMP 后,任务栏图标变成绿色,我做了这些更改,每次重新启动 WAMP 服务器时它都会停止在橙色。

因此我也尝试过:

  • 关闭 Skype
  • 更改 Skype 设置,使其不监听端口 80(工具>选项>高级>连接>使用端口 80 和 443 作为传入连接的替代。取消勾选。)
  • 检查端口 80 上没有其他任何东西在监听
  • 将端口更改为 8080
  • 将端口更改为其他号码
  • 将 ::1 添加到主机

我无法确定 Apache 错误日志中发生了什么。

我使用的是 Windows XP (SP3) 和 Apache 2.2.22,这是否存在不兼容的情况,或者可以修复吗?

如果有人能给我提供这方面的线索,我提前非常感谢你 - 我已经被困了好几个月了。

答案1

扩展我的评论:

这里真正的关键是,当您在修改配置文件后重新启动 Apache 时,您的状态图标不会变成绿色 - 这很可能是由于您的配置文件存在问题(这意味着您不需要摆弄 Skype、端口等) - 调试工作应该集中在 Apache 配置文件上。我不确定配置文件的错误在 WAMP 中记录在哪里,但如果我是你,我会花时间弄清楚这一点……

我认为问题在于<directory>部分不能位于所包含的 conf 文件的顶层。如文档, 他们的语境是服务器配置或虚拟主机,这意味着它需要位于主配置文件中(即httpd配置文件)或定义<VirtualHost>。尝试如下操作:

< VirtualHost *:80>
    DocumentRoot “C:/WAMPprojects/Hermes”
    ServerName my.testsite
    <Directory C:/WAMPprojects>
        Order Deny,Allow
        Allow from all
    </Directory>
< /VirtualHost>

答案2

您是否尝试过添加服务器别名, 喜欢:

<VirtualHost *:80>
    DocumentRoot "C:/WAMPprojects/Hermes"
    ServerName my.testsite
    ServerAlias my.testsite
    <Directory "C:/WAMPprojects/Hermes">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

答案3

当您的浏览器向服务器发出应填写详细信息的请求时,会发生以下情况:

  • 你输入http://whatever.invalid在地址栏中
  • 浏览器使用系统解析器发出 DNS 请求,将 whatever.invalid 转换为 IP 地址
  • 浏览器对该 DNS 请求返回的 IP 发出 HTTP GET 请求。
  • 在该 HTTP GET 请求的标头中,您的浏览器会放置一行“Host:”,复制您使用的域名,即“Host: whatever.invalid”
  • 如果 IP 正确,Apache 将收到请求。
  • 如果存在这样的配置,Apache 将检查 HTTP 标头中是否有任何“Host:”行并使用适当的 vhost。

因此,您缺少的一块拼图是 DNS 服务器,该服务器愿意获取您的站点名称并返回您的 Apache 服务器所在的 IP(当前为 localhost)。

您可以运行自己的本地 DNS 服务器,或者干脆放弃 vhosts 并在浏览器中使用http://localhost或。http://127.0.0.1

只需更仔细地重新阅读您的问题,就会发现您使用了该hosts文件。尝试 pingmy.testsite并查看127.0.0.1ping 是否返回。您可能需要删除文件localhost中任何现有的引用hosts。(顺便说一句,我刚刚在我使用的 Windows 系统上尝试了ping -4 localhost,它确实导致 ping 到127.0.0.1...所以可能是其他原因...)

相关内容