需修改phpenv底层web服务配置:apache改httpd.conf中listen为0.0.0.0:80、require all granted;nginx改nginx.conf中listen为0.0.0.0:80,并确保防火墙对“公用网络”放行,重启服务后即可用http://192.168.x.x:端口访问。

phpEnv 项目如何用本地 IP + 端口访问?
默认情况下,phpEnv 启动的 Apache 或 Nginx 只监听 127.0.0.1(即仅本机可访问),局域网其他设备用你的内网 IP(如 192.168.1.23)访问会直接失败或超时。
关键不是改 phpEnv 界面设置,而是改底层 Web 服务配置:
- Apache:编辑
D:\phpEnv\apache\conf\httpd.conf(路径依安装盘符而定),找到Listen 80和ServerName localhost:80,再确认<directory></directory>块里有Require all granted(不是Require local) - Nginx:编辑
D:\phpEnv\nginx\conf\nginx.conf,在server块中把listen 80;改成listen 0.0.0.0:80;,并确保server_name不限制域名(或设为_) - 改完必须重启 phpEnv 服务(不是只点“重启 Apache”,要彻底“停止→启动”)
改完后,在同一局域网的手机或另一台电脑浏览器输入 http://192.168.1.23:80(端口非 80 则补上,如 :8080)就能访问了。
为什么开了防火墙允许端口,还是局域网访问不了?
Windows 防火墙规则没生效是常见原因——它默认只对“专用网络”放行,而很多 WiFi 连接被系统识别为“公用网络”,导致规则不触发。
检查和修复方法:
- 打开“控制面板 → 网络和 Internet → 网络和共享中心”,看当前连接显示的是“专用网络”还是“公用网络”。如果是后者,点击它 → “属性” → 把网络配置文件改为“专用”
- 防火墙入站规则里,确认你新建的规则勾选了“公用”网络(不只是“专用”)
- 临时关闭防火墙测试一次,能通说明就是规则问题;通了再开回来,精准调整规则
别跳过“网络类型”这步,90% 的局域网访问失败卡在这里。
phpEnv 能不能直接外网访问?
不能。phpEnv 是纯本地集成环境,没有公网暴露能力,也不提供动态 DNS、NAT 穿透或反向代理功能。
想让外网访问,必须额外加一层转发,且取决于你的网络环境:
- 如果你的路由器有公网 IP(WAN 口显示的是真实 IPv4 地址,不是
10.x、100.64.x、192.168.x这类私有地址),登录路由器后台 → 找“虚拟服务器”或“端口映射”,把外网端口(如 8080)映射到你电脑的内网 IP + 对应端口(如192.168.1.23:80) - 绝大多数家庭宽带没有公网 IP,这时必须用内网穿透工具,比如
nat123、cpolar或frp。它们会在你电脑上起一个客户端,连到服务商的公网节点,再由节点把请求转给你本地的 phpEnv 端口 - 注意:外网访问意味着你的本地服务直接暴露,务必关闭 phpEnv 自带的 phpMyAdmin、测试页等敏感入口,或加基础认证(如 Apache 的
.htaccess)
用 IP 访问时,ThinkPHP / Laravel 路由 404 怎么办?
这是 Web 服务没正确处理 URL 重写导致的,不是框架本身的问题。
对应处理方式:
- Apache:确认
mod_rewrite已启用(httpd.conf中取消#LoadModule rewrite_module modules/mod_rewrite.so的注释),且项目根目录有有效的.htaccess文件(ThinkPHP/Laravel 默认自带) - Nginx:在站点配置的
location /块里加上try_files $uri $uri/ /index.php?$query_string;,否则所有非静态资源都会 404 - phpEnv 界面里“URL 重写”开关只对 Nginx 生效,且只影响新增站点;已存在的站点需手动改
nginx.conf或站点 conf 文件
IP 访问本质和域名访问一样,只是少了一层 DNS 解析,所有 Web 层逻辑完全一致——配置漏一项,就全挂。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











