php文件显示源码是因为未进入执行环境:必须通过http协议(如http://localhost)由web服务器解析,禁用file://直接打开;需确认php已安装、apache/nginx正确配置php模块并重启服务,且文件无隐藏后缀或bom问题。

加了PHP标签后页面直接显示源码,不是代码写错了,而是PHP根本没运行——浏览器看到的是服务器原样吐出来的文本,PHP解释器压根没接手处理。
PHP文件没走PHP解析流程
PHP是服务端语言,必须由Web服务器(如Apache/Nginx)或PHP内置服务器触发执行。如果只是双击打开、用file://协议访问,或者服务器配置漏掉了关键环节,PHP代码就会被当成普通文本返回。
- ❌ 错误方式:直接打开
file:///D:/test.php或桌面双击运行 - ✅ 正确方式:通过
http://localhost/test.php访问,且后台有服务在监听并转发给PHP
Web服务器没把.php交给PHP处理
常见于Apache或Nginx配置缺失或失效:
- Apache:缺少
AddType application/x-httpd-php .php或LoadModule php_module未启用;运行a2enmod php8.2(版本号需匹配)再重启 - Nginx:location块里没配
fastcgi_pass,或PHP-FPM进程根本没启动(查systemctl status php8.2-fpm) - 验证方法:新建
info.php,内容为<?php phpinfo(); ?>,访问该地址——若显示空白、下载或源码,说明解析链断了
文件本身有问题
看似是.php,实际可能藏了陷阱:
- Windows编辑保存时自动加了.txt后缀,比如文件名是
index.php.txt,但扩展名被隐藏,看着像.php - 上传到Linux服务器时换行符或BOM头异常,某些旧版配置下会导致解析失败退为纯文本
- 用了短标签
但short_open_tag = Off(默认关闭),导致从开始的内容不被识别为PHP,后续全当HTML输出
响应头暴露真相
打开浏览器开发者工具 → “网络”选项卡 → 点开请求 → 查看“响应标头”:
- 如果
Content-Type: text/plain或application/octet-stream,100%确认服务器没调用PHP - 正常应为
Content-Type: text/html; charset=UTF-8,且状态码是200
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











