如何通过局域网内其他电脑访问Appserv运行的CodeIgniter 3站点
局域网访问CI3站点(Appserv环境)排查步骤
前置自检
- 先确认本机直接在浏览器输入
http://192.168.1.1/site/可以正常打开站点。如果本机用该IP都无法访问,无需检查CodeIgniter配置,直接定位Apache/网络/防火墙层面的问题。 - 在需要访问的客户端电脑上ping 192.168.1.1,确认网络连通,排除路由器AP隔离、跨网段拦截等基础网络故障。
第一步:检查Apache监听配置
Appserv默认的Apache配置仅监听本地回环地址,局域网请求根本不会被Apache接收:
- 打开Appserv安装目录下
Apache2.4/conf/httpd.conf(旧版本对应Apache2.2路径) - 找到
Listen配置项,若默认值为Listen 127.0.0.1:80,修改为Listen 0.0.0.0:80,即监听所有网卡的80端口 - 修改完成后重启Apache服务生效
第二步:配置Apache目录访问权限
默认Appserv仅允许本地IP访问站点根目录,局域网IP请求会被返回403错误:
- 仍在
httpd.conf中找到对应站点目录的配置段,对应你把site项目放在htdocs目录下的场景,配置段通常为<Directory "Appserv安装路径/htdocs"> - 旧版Apache2.2:找到
Order deny,allow、Deny from all配置,修改为Allow from 192.168.1.0/24,允许整个局域网网段访问 - 新版Apache2.4:找到
Require local配置,修改为Require ip 192.168.1.0/24 - 修改完成重启Apache生效
第三步:放行系统防火墙规则
Windows防火墙默认拦截所有外部对80端口的入站请求,是最常见的访问失败原因:
- 打开高级安全Windows Defender防火墙,检查入站规则中Apache的
httpd.exe对应规则,确认规则设置为「允许连接」,且作用域包含局域网IP - 若找不到对应规则,直接新建入站规则,放行TCP 80端口来自192.168.1.0/24网段的所有请求
- 临时测试可暂时关闭全量防火墙,若此时可以正常访问,即可确认是防火墙拦截导致的问题
第四步:核对CodeIgniter3配置
完成前面三步后如果仍有问题,再检查CI3本身的配置:
- 确认
application/config/config.php中$config['base_url']值为你设置的http://192.168.1.1/site/,没有遗漏末尾斜杠,也没有残留默认的localhost类硬编码 - 确认
$config['index_page']配置和实际路径匹配:如果没有配置URL重写去掉index.php,base_url需要写为http://192.168.1.1/site/index.php/ - 如果你使用了
.htaccess重写去掉index.php,需要确认Apache配置中对应目录的AllowOverride参数为All,否则重写规则不会生效,会返回404 - 检查项目的控制器、视图、配置文件中是否存在硬编码的
localhost/127.0.0.1跳转逻辑,这类逻辑会导致其他电脑访问时跳转到客户端自身的本地地址,出现连接失败
常见报错对应定位
- 提示「无法访问此网站/连接超时」:优先排查Apache监听地址、Windows防火墙拦截
- 提示403 Forbidden:优先排查Apache目录访问权限配置
- 提示404 Not Found:优先排查.htaccess重写规则、站点路径、CI路由配置
- 页面打开但样式、静态资源加载失败、点击链接跳转到自身localhost:优先排查base_url配置、硬编码的本地地址引用
内容的提问来源于stack exchange,提问作者Alfred Joseph
相关产品推荐
相关产品推荐

