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

VueJS+Axios与PHP通信返回PHP源码的问题排查

解决Apache子目录PHP文件返回源码而非解析执行的问题

我搭建了基于VueJS、Axios和PHP的应用,使用Apache 2.4服务器。根目录的index.php能正常显示phpinfo信息,但子目录backend/user_handling/Login.php通过Axios调用时返回源码,而非预期的JSON响应。

核心原因

根目录PHP文件能正常解析,说明全局PHP模块和配置无问题,问题出在子目录的Apache配置未启用PHP解析。

解决方案

1. 检查Apache目录配置,确保子目录允许PHP解析

打开Apache的配置文件(httpd.conf或httpd-vhosts.conf),找到对应站点的<Directory>块,添加或修改配置,确保子目录能解析PHP:

# 替换为你的htdocs实际路径
<Directory "/usr/local/apache2/htdocs/backend/user_handling">
    AllowOverride All
    Require all granted
    # 强制解析.php文件
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
</Directory>

修改后重启Apache服务。

2. 检查子目录的.htaccess文件

如果子目录下存在.htaccess,可能覆盖了PHP解析规则:

  • 若文件中有SetHandler default-handler这类禁用PHP的规则,直接删除
  • 若没有解析规则,添加以下内容强制解析PHP:
    AddType application/x-httpd-php .php
    

3. 验证文件路径与请求URL的一致性

直接在浏览器访问http://localhost/backend/user_handling/Login.php:

  • 如果返回源码:确认是服务器配置问题,继续排查上述两点
  • 如果返回JSON:说明前端请求路径可能有误,检查Vue中Axios的请求URL是否正确(比如是否多了/少了路径层级)

4. 检查PHP文件权限

  • Linux/macOS:确保文件权限为644,目录权限为755,执行命令:
    chmod 644 /path/to/htdocs/backend/user_handling/Login.php
    chmod 755 /path/to/htdocs/backend/user_handling
    
  • Windows:确保Apache服务账户对该文件有读取权限

额外验证

确认Apache已加载PHP模块:
在httpd.conf中查找是否有类似以下的行(根据PHP版本调整):

LoadModule php8_module modules/libphp8.so

如果没有,添加该行并重启Apache。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:12:43