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

为何XAMPP无法显示PHP网页?Docker环境可正常运行

问题原因分析

以下是导致XAMPP环境报错而Docker+NGINX正常运行的常见原因:

  • 文档根目录配置不匹配
    Docker中NGINX的root路径直接指向了你的应用目录,但XAMPP的Apache默认文档根是/opt/lampp/htdocs/。如果你的PHP应用没放到这个目录,或者Apache配置里的DocumentRoot没修改为应用所在路径,服务器自然找不到请求的资源。检查/opt/lampp/etc/httpd.conf里的DocumentRoot和对应的<Directory>配置,确认路径指向你的应用根目录。

  • URL重写规则未生效
    多数PHP框架依赖URL重写实现友好路由,Docker的NGINX通常已经配置了重写规则支持,但XAMPP的Apache默认可能没开启相关模块或权限:

    1. 打开httpd.conf,确保LoadModule rewrite_module modules/mod_rewrite.so这行没有被注释;
    2. 找到应用目录对应的<Directory>块,把AllowOverride None改成AllowOverride All;
    3. 重启XAMPP的Apache服务。
  • 访问路径映射差异
    Docker部署时可能配置了直接用根域名(比如http://localhost/)指向应用的public/入口目录,但XAMPP中如果应用放在htdocs的子文件夹(比如htdocs/my-app/),访问时必须加上完整路径http://localhost/my-app/public/,直接访问根路径会出现找不到资源的错误。

  • 文件权限不足
    Ubuntu下XAMPP的Apache进程以daemon用户运行,而你的VS Code工作区文件属于当前用户,导致Apache没有读取权限。执行以下命令调整权限:

    sudo chown -R daemon:daemon /path/to/your/php-app
    sudo chmod -R 755 /path/to/your/php-app
    
  • 虚拟主机配置缺失
    Docker中可能配置了虚拟主机指向你的应用,而XAMPP未设置对应虚拟主机,导致访问路径不匹配。可以在/opt/lampp/etc/extra/httpd-vhosts.conf添加如下配置:

    <VirtualHost *:80>
        DocumentRoot "/path/to/your/php-app/public"
        ServerName local.app.test
    </VirtualHost>
    

    接着在/etc/hosts里添加127.0.0.1 local.app.test,重启Apache后用这个域名访问即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:16:17