商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > phpEnv配置本地多域名hosts文件 phpEnv域名解析教程

phpEnv配置本地多域名hosts文件 phpEnv域名解析教程

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

配置本地多域名这事儿,说起来简单,但坑其实不少。先说一个核心判断:phpEnv 本身不处理域名绑定,它只是个容器环境。你真正要改的,是操作系统和 Web 服务器的路由规则——也就是系统 hosts 文件和 Apache/Nginx 的虚拟主机配置。这三者必须严格一致,否则浏览器访问进来,轻则 404,重则 502,而且日志里往往只丢给你一句“client denied by server configuration”,查都无从查起。

phpEnv配置本地多域名hosts文件 phpEnv域名解析教程

所以,问题出在哪儿?先从第一步说起。

问题出在哪儿?——系统 hosts 文件是起点

没有 hosts 文件这一步,浏览器压根不知道 projecta.test 这个域名该发给谁。后面所有配置,全是白搭。

  • hosts 文件路径是固定的:Windows 在 C:\Windows\System32\drivers\etc\hosts,macOS/Linux 在 /etc/hosts。别找错地方。
  • 打开它需要管理员权限——Windows 右键选“以管理员身份运行”编辑器,macOS/Linux 用 sudo,否则改完保存不了。
  • 每行格式极其严格:127.0.0.1 projecta.test。IP 和域名之间用空格或 Tab,不能用中文标点,不能多空格,不能写错拼写。这类低级错误会导致整个域名无法解析,而且没有任何明确报错。
  • 加完记录后,不用重启电脑,但建议清一下 DNS 缓存:Windows 执行 ipconfig /flushdns,macOS 执行 sudo dscacheutil -flushcache。这一步经常被忽略,但很管用。

Apache 虚拟主机:改完必须重启,否则等于没改

phpEnv 默认可能没启用虚拟主机模块,ServerNameDocumentRoot 但凡有一个对不上,就是 404 或 502。

  • 先确认 httpd.conf 中这一行没有被注释掉:Include conf/extra/httpd-vhosts.conf。没它,虚拟主机配置根本不会生效。
  • 每个 块里,ServerName 必须和 hosts 里写的域名**完全一致**。大小写、有无 www、是否带 .test,差一个字符都不行。
  • DocumentRoot 路径要用正斜杠 / 或双反斜杠 \\,单反斜杠 \ 在 Apache 配置里会直接报错。
  • 块里必须写上 Require all granted(Apache 2.4+),旧版的 Allow from all 在新版本里会直接拒绝访问。
  • 最关键的一点:改完配置后,必须重启 Apache。光刷新页面没用,日志里也不会提醒你。

phpEnv 图形界面:它不会帮你写 hosts 文件

phpEnv 的“站点域名管理”功能确实能自动生成 httpd-vhosts.conf 的条目,但它**不会自动往系统 hosts 文件里写记录**。这一步得你自己动手。

  • 你在 phpEnv 界面添加了 a.testb.test,它只改了 Apache 配置。你还得自己打开 hosts 文件,手动追加两行:127.0.0.1 a.test127.0.0.1 b.test
  • 部分版本的 phpEnv 会附带一个“打开 hosts”按钮,但点击后只是打开文件,不会自动写入内容。别指望它帮你代劳。
  • 如果启用了 HTTPS,记得在 hosts 里也映射对应域名,并确认 Apache 的 SSL 虚拟主机监听的是 *:443,且证书路径有效。否则 HTTPS 访问会直接失败。

最后,也是最容易被忽视的一点:浏览器地址栏输入的域名、hosts 文件里写的域名、Apache 的 ServerName 写的域名,这三个字符串必须一字不差。少个点、多个空格、大小写不同,都会导致请求进错虚拟主机,甚至直接 404。而日志里往往只显示“client denied by server configuration”,根本看不出是域名不匹配。所以,配完之后,检查一遍,再检查一遍。这才是关键所在。

本文转载于:https://www.php.cn/faq/2376093.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注