You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows虚拟机中PHP网站将localhost改为自定义域名不生效如何解决

排查步骤

1. 校验hosts配置生效情况

  • 确认修改的hosts文件位置正确:若在虚拟机内部访问,修改虚拟机内的hosts;若在Windows宿主系统访问,需修改Windows宿主的hosts(路径为C:\Windows\System32\drivers\etc\hosts,修改需要管理员权限)
  • 若为宿主访问虚拟机的场景,hosts内的映射IP不能填127.0.0.1,需要填写虚拟机的内网IP
  • 验证hosts生效:打开对应系统的命令行,执行ping website-name,检查返回的IP是否和你配置的映射IP一致

2. 校验Apache配置合法性

  • 确认httpd.conf中vhosts启用规则无注释:检查Include conf/extra/httpd-vhosts.conf这一行前面没有#注释符
  • 验证配置语法:进入Apache的bin目录,执行httpd -t,只有返回Syntax OK才代表配置语法正确,否则会提示具体错误行和原因
  • 确认vhost配置参数正确,参考配置如下:
<VirtualHost *:80>
    DocumentRoot "你的PHP项目根目录绝对路径"
    ServerName website-name
    <Directory "你的PHP项目根目录绝对路径">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

重点检查:端口是否和Apache实际监听端口一致、目录路径是否正确、是否配置了Require all granted权限规则(Apache2.4+未配置会返回403)

  • 检查端口占用:执行netstat -ano | findstr "80"(Windows)或netstat -tunlp | grep 80(Linux虚拟机),确认80端口被Apache进程占用,没有被IIS、Nginx等其他服务抢占

3. 排查网络访问限制

  • 若为宿主访问虚拟机的场景,先临时关闭虚拟机防火墙测试,确认是否是防火墙拦截了80端口访问;同时确认虚拟机网络模式为桥接/NAT,宿主和虚拟机网络互通
  • 若vhost配置了非80端口(如8080),访问时需要携带端口,格式为http://website-name:8080

4. 清理缓存验证

使用浏览器无痕模式访问,或提前清除浏览器DNS缓存,避免旧缓存导致访问失败

内容的提问来源于stack exchange,提问作者Robin clave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:24:01