Laravel 8应用运行时/public/index.php突然显示PHP纯文本如何解决
Laravel 8 返回PHP纯文本故障排查方案
相关故障截图:

该故障本质是Web服务器没有正确解析PHP代码,直接将源码返回给客户端,按照以下步骤逐一排查即可:
1. 检查PHP服务运行状态
- 如果你使用PHP-FPM模式(Nginx默认、Apache部分场景使用),执行对应版本的状态检查命令,示例如下(将
php8.0-fpm替换为你服务器实际安装的PHP版本):systemctl status php8.0-fpm
若服务处于停止状态,执行启动命令:systemctl start php8.0-fpm
如需设置开机自启,额外执行:systemctl enable php8.0-fpm - 如果你使用Apache的mod_php模式,检查PHP模块是否正常启用:
a2enmod php8.0
执行完成后重启Apache服务:systemctl restart apache2
2. 校验Web服务器配置
Nginx 场景
- 检查站点配置文件中PHP解析规则是否存在、配置是否正确,核心配置段参考如下:
location ~ .php$ {
fastcgi_pass unix:/run/php/php8.0-fpm.sock; # 需和实际fpm监听的sock路径或端口一致
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
- 配置修改后执行语法校验,确认没有错误:
nginx -t
校验通过后重启Nginx生效:systemctl restart nginx
Apache 场景
- 检查public目录下Laravel自带的
.htaccess文件是否存在、规则是否被篡改,确保伪静态规则正常 - 检查站点配置中对应站点的目录配置项,确认
AllowOverride All已开启,否则.htaccess规则不会生效
3. 排查近期操作与权限问题
- 确认近期是否执行过系统更新、PHP版本升级、Web服务器配置修改操作,若有版本变更,需要同步更新Web服务器中对应PHP版本的配置参数
- 检查public目录以及index.php文件权限,确保Web服务器运行用户(通常为www-data)有可读权限,可执行以下命令修复:
chmod 644 public/index.phpchmod 755 public
4. 快速验证定位
在public目录下新建info.php文件,写入内容:<?php phpinfo(); ?>
访问该文件:
- 如果仍然返回纯文本:故障属于服务器层面的PHP解析配置问题,和Laravel应用无关,重点排查前三项即可
- 如果正常输出PHP信息:排查Laravel的index.php是否被篡改、是否存在语法错误,或者应用层面的PHP版本兼容问题
内容的提问来源于stack exchange,提问作者Jafer P
相关产品推荐
相关产品推荐

