You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XAMPP发布PHP至公网遇问题,求免费本地测试方案

XAMPP Apache 公网访问问题的解决方案

一、排查核心配置遗漏点

  • Apache监听范围:打开XAMPP控制面板→Apache→Config→Apache (httpd.conf),找到Listen行,必须改为Listen 0.0.0.0:80(用8080就写8080),不能是仅绑定本地的Listen 127.0.0.1:80。
  • 目录权限:在httpd.conf里找到<Directory "你的网站根目录(比如htdocs)">块,把Require local替换为Require all granted,同时确保AllowOverride All和Options Indexes FollowSymLinks Includes ExecCGI已启用。
  • 虚拟主机配置(如果启用):打开Apache (httpd-vhosts.conf),虚拟主机块必须是<VirtualHost *:80>,而非特定本地IP,同时在块内添加Require all granted,ServerName可设为你的DuckDNS域名。

二、端口转发与防火墙验证

  1. 路由器端口转发
    • 进入路由器后台(通常是192.168.1.1/192.168.0.1),找到「端口转发」/「虚拟服务器」选项。
    • 添加规则:外部端口设为你用的80/8080,内部IP是运行XAMPP设备的局域网IP(比如192.168.1.105),内部端口和外部端口一致,协议选TCP(或TCP+UDP)。
  2. 本地/路由器防火墙
    • Windows:打开「Windows Defender防火墙→高级设置→入站规则」,新建规则允许Apache的httpd.exe通过对应端口,或直接放行XAMPP Apache程序。
    • 第三方杀毒/防火墙软件:检查是否拦截了该端口的入站请求,需手动添加放行规则。
    • 路由器防火墙:部分路由器自带防火墙,需确认已放行对应端口的外部访问。

三、公网IP类型判断与DuckDNS配置

  1. 确认公网IP是否为独立IP
    • 百度搜索「我的IP」获取公网IP,对比路由器WAN口显示的IP:
      • 两者一致:直接用http://公网IP:端口测试(用手机流量,别连WiFi),能访问则基础配置生效。
      • 两者不一致:说明是运营商CGNAT内网IP,普通端口转发无效,需用内网穿透工具配合DuckDNS。
  2. DuckDNS设置
    • 注册DuckDNS账号,获取专属域名(如xxx.duckdns.org)。
    • 下载对应系统的IP更新脚本(Windows用bat,Linux用sh),填入你的域名和DuckDNS token,设置定时运行,确保域名始终指向你的公网IP。
    • CGNAT场景:用免费临时穿透工具ngrok,执行ngrok http 80,会生成一个临时公网地址,直接分享给朋友测试;或用frp搭建稳定穿透服务配合DuckDNS使用。

四、测试步骤

  1. 局域网内用设备IP+端口访问,确认Apache正常运行。
  2. 用手机流量访问http://公网IP:端口或http://你的DuckDNS域名:端口,能打开PHP页面即为成功。
  3. 若仍失败,用telnet 公网IP 端口测试端口是否开放,或用在线端口检测工具确认端口可被外部访问。

内容的提问来源于stack exchange,提问作者life3less

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 15:22:27