phpenv局域网访问需同步修改apache的listen指令为listen 80(或0.0.0.0:80)、目录块中require local改为require all granted,并在windows防火墙添加放行80端口的入站规则,同事须用你的实际局域网ip(如192.168.1.100)访问。

phpEnv 默认只监听 127.0.0.1,所以同事用你的局域网 IP 访问时会直接失败——这不是 PHP 代码问题,是 Apache 配置 + 系统防火墙双重拦截的结果。
Apache 配置必须改 Listen 和 Directory 权限
phpEnv 底层用的是 Apache,它默认只允许本地回环访问。光改 httpd.conf 里的 Listen 80 不够,还得放开对应目录的访问控制。
- 打开
phpenv\apache\conf\httpd.conf - 找到
Listen 127.0.0.1:80,改成Listen 80(或Listen 0.0.0.0:80) - 向下找到
<directory></directory>这类块(路径以你实际安装位置为准) - 把里面的
Require local改成Require all granted - 如果看到
AllowOverride None,建议改成AllowOverride All(否则 .htaccess 不生效)
改完必须重启 phpEnv 的 Apache 服务,否则配置不加载。
Windows 防火墙必须放行端口,不能只“关闭”
直接关防火墙风险高,且 Win11/Win10 后很多企业策略禁止关闭。正确做法是加入入站规则。
- 进「控制面板 → Windows Defender 防火墙 → 高级设置」
- 左侧选「入站规则」→ 右侧点「新建规则」
- 选「端口」→ TCP → 特定本地端口填
80(或你改的其他端口如8080) - 操作选「允许连接」→ 配置文件勾上「域」「专用」「公用」(局域网通常走「专用」)
- 名称随便写,比如
phpEnv-HTTP
注意:如果你用了非标准端口(比如 8000),规则里端口号也得同步改,且同事浏览器要带端口访问,例如 http://192.168.1.100:8000。
同事访问时别输 localhost,要输你的局域网 IP
你的电脑在局域网中的真实 IP 才是关键,localhost 或 127.0.0.1 在同事机器上解析的是他们自己的本机。
- 你在自己电脑上运行
ipconfig(Windows)或ifconfig(macOS/Linux),找IPv4 地址,通常是192.168.x.x或10.x.x.x段 - 让同事在浏览器地址栏输入完整 URL,例如:
http://192.168.1.100(默认端口)或http://192.168.1.100:8080 - 如果用了虚拟主机(如
www.tp.com),同事需手动改他们自己电脑的hosts文件,加一行:192.168.1.100 www.tp.com
hosts 文件路径:C:\Windows\System32\drivers\etc\hosts(需管理员权限保存)。
phpEnv 内置站点和 ThinkPHP 的 php think run 是两套东西
很多人混淆 phpEnv 的 Apache 服务和 ThinkPHP 自带的 PHP 内置服务器。前者走 http://192.168.x.x,后者默认只绑 127.0.0.1,且不经过 Apache。
- 如果你用的是
php think run启动项目,它默认拒绝外部访问;要局域网可用,得显式指定地址:php think run -H 0.0.0.0 -p 8000 - 但这样绕过了 phpEnv 的 Apache 和所有 rewrite 规则(比如 ThinkPHP 的 pathinfo 路由可能 404)
- 更稳的方式:把 ThinkPHP 项目整个放进
phpenv\www\目录下,用 phpEnv 的 Apache 托管,统一走上面三步配置
真正容易被忽略的是:改了 Apache 配置后没重启服务、防火墙规则加了但没勾选「公用」网络、以及同事输错了 IP 段(比如把 192.168.50.101 误记成 192.168.1.101)。这些比代码逻辑更容易卡住整个流程。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











