PHP未执行显示源码的解决方法:一、启用short_open_tag;二、确认Web服务器正确加载PHP模块;三、确保通过http://而非file://访问;四、用phpinfo()验证配置;五、去除UTF-8 BOM头。

如果您在本地 PHP 环境中运行 PHP 文件时,浏览器直接显示原始 PHP 代码(如 php echo "hello"; ?> 而未执行),而非输出结果,则说明 PHP 解析器未生效。常见原因包括短标签未启用、short_open_tag 配置关闭、Web 服务器未正确关联 PHP 处理器,或文件未通过 Web 服务器访问。以下是排查与修复步骤:
一、确认是否使用了短标签并检查 short_open_tag 设置
PHP 短标签( ... ?>)默认在多数现代 PHP 版本中被禁用,仅 是始终启用的标准标签。若代码中混用短标签且配置未开启,将导致解析失败。
1、打开 PHP 配置文件 php.ini(可通过 php --ini 命令定位其路径)。
2、搜索 short_open_tag 配置项。
立即学习“PHP免费学习笔记(深入)”;
3、将其值修改为 On:short_open_tag = On。
4、保存文件后,重启 Web 服务器(如 Apache 或 Nginx)及 PHP-FPM(如启用)。
二、验证 PHP 是否被 Web 服务器正确加载
即使 PHP 解释器已安装,若 Web 服务器未将 .php 文件交由 PHP 模块处理,请求将被当作纯文本返回。需确认服务器模块注册与处理器映射是否生效。
1、对于 Apache,检查 httpd.conf 或 apache2.conf 中是否存在类似 LoadModule php_module 或 LoadModule mpm_prefork_module 的启用行(具体取决于 PHP 版本与安装方式)。
2、确认存在 AddHandler application/x-httpd-php .php 或
3、运行 apachectl -M | grep php(Linux/macOS)或 httpd -M | findstr php(Windows)验证 PHP 模块是否已加载。
三、检查文件是否经由 Web 服务器访问而非本地文件协议
直接双击打开 file:///path/to/index.php 会导致浏览器绕过服务器,PHP 完全不执行。所有测试必须通过 http://localhost/ 或类似地址发起 HTTP 请求。
1、启动本地 Web 服务(如使用 XAMPP、WAMP、MAMP 或内置 PHP 服务器)。
2、将 PHP 文件置于 Web 根目录(如 htdocs 或 www)下。
3、在浏览器中访问 http://localhost/index.php,而非 file:// 路径。
四、创建 phpinfo() 页面验证解析环境
该方法可直观确认当前生效的 PHP 配置、已加载模块及实际使用的 php.ini 路径,是排除配置错位的关键步骤。
1、新建文件 info.php,内容仅包含:(务必使用标准长标签)。
2、将该文件放入 Web 根目录。
3、通过浏览器访问 http://localhost/info.php。
4、在页面中查找 Loaded Configuration File 行,确认显示的 php.ini 路径与您编辑的配置文件一致;同时核对 short_open_tag 行的值是否为 On。
五、检查 PHP 文件编码与 BOM 头干扰
UTF-8 编码文件若含 BOM(Byte Order Mark),可能导致 PHP 解析器在读取第一行前遇到不可见字符,从而跳过解析,尤其在短标签场景下易触发输出异常或空白响应。
1、使用支持编码查看的编辑器(如 VS Code、Notepad++)打开 PHP 文件。
2、检查状态栏或编码菜单,确认文件编码为 UTF-8 without BOM 或 ANSI/ASCII。
3、若显示为 UTF-8 with BOM,选择“另存为”,编码类型选 UTF-8(无 BOM)。
4、保存后刷新浏览器页面并重新测试。











