![WAMP 服务器:我做错了什么?](https://linux22.com/image/1365077/WAMP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9A%E6%88%91%E5%81%9A%E9%94%99%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我是 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.1
ping 是否返回。您可能需要删除文件localhost
中任何现有的引用hosts
。(顺便说一句,我刚刚在我使用的 Windows 系统上尝试了ping -4 localhost
,它确实导致 ping 到127.0.0.1
...所以可能是其他原因...)