phpenv默认不监听局域网请求,需修改httpd.conf中listen为0.0.0.0:80、将require local替换为require all granted,并在windows防火墙放行对应端口,最后固定本机ip以确保访问稳定。

phpEnv 默认不监听局域网请求
phpEnv 启动的 Apache 默认只绑定 127.0.0.1,哪怕你本地能用 localhost 正常访问,其他设备输你的局域网 IP(如 http://192.168.1.105)也会直接失败——不是网络不通,是 Apache 根本没在那个地址上“听”。
必须显式修改监听地址:
- 打开
X:\phpenv\apache\conf\httpd.conf(Windows)或对应路径的配置文件 - 找到
Listen 80这一行,改成Listen 0.0.0.0:80(或你实际用的端口,比如Listen 0.0.0.0:8080) - 顺手检查
ServerName行:若存在,建议注释掉(#ServerName localhost:80),避免干扰虚拟主机解析
改完别忘了重启 phpEnv 的 Apache 服务,否则配置不生效。
Require local 是 Apache 2.4+ 的默认拦路虎
即使监听地址改对了,Apache 2.4+(phpEnv 用的就是这个版本)默认用 Require local 拒绝所有非本机请求。这个限制藏在两个地方,漏改一个都会 403:
- 主目录权限块:
<directory></directory>内,把Require local换成Require all granted - 如果你启用了虚拟主机,还要去
httpd-vhosts.conf里每个<directory></directory>块中同样替换Require local→Require all granted
⚠️ 别抄老教程里的 Order deny,allow + Allow from all,那是 Apache 2.2 语法,phpEnv 会直接报错 Invalid command 'Order',启动失败。
Windows 防火墙必须放行对应端口
Apache 配置全对、服务也跑了,但别人还是打不开?八成是 Windows 防火墙默默挡住了入站连接。不能关防火墙,得精准放行:
- 打开「控制面板 > 系统和安全 > Windows Defender 防火墙 > 高级设置」
- 左侧点「入站规则」→ 右侧「新建规则」→ 选「端口」→ 下一步
- 选 TCP,填你用的端口(如
80或8080)→ 下一步 → 选「允许连接」→ 下一步 - 勾选「域」「专用」「公用」三个网络类型(局域网通常走「专用」,但全选更稳)→ 完成并命名(如
phpEnv-HTTP)
验证是否生效:在另一台局域网设备浏览器输入 http://192.168.x.x:80(换成你本机真实 IP),不是 localhost,也不是 127.0.0.1。
IP 地址变动会导致访问中断
很多人第一次配通后过两天又连不上,大概率是因为 DHCP 分配的 IP 变了。手机或同事电脑里存的旧地址自然失效。
解决办法很简单:
- 在 Windows 中运行
ipconfig,记下「无线局域网适配器 WLAN」或「以太网适配器」下的 IPv4 地址(如192.168.1.105) - 进路由器后台(通常是
192.168.1.1),找到 DHCP 静态分配或 IP 绑定功能,把这台电脑的 MAC 地址和刚才的 IP 锁死 - 或者直接在本机网络设置里手动指定 IPv4 地址(需避开路由器 DHCP 范围,比如设为
192.168.1.200)
不固定 IP,每次重连都得重新查、重新告诉别人新地址,协作效率直接归零。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











