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

Laravel 8部署到无SSH/root权限Web服务器后显示空白页如何排查

可能原因及排查解决步骤

  • PHP环境匹配问题
    Laravel 8要求PHP版本≥7.3,且必须安装BCMath、Ctype、Fileinfo、JSON、Mbstring、OpenSSL、PDO、Tokenizer、XML扩展。你可以新建一个phpinfo.php文件,写入以下内容上传到网站根目录:
<?php phpinfo();

访问该文件确认PHP版本和扩展是否符合要求,缺失扩展可联系主机商开启。

  • 配置及缓存问题
  1. 确认你已经修改了项目根目录的.env文件,将APP_URL改为服务器实际域名,数据库、缓存等配置和服务器环境匹配,可临时将APP_DEBUG改为true开启调试模式,测试完成后改回false
  2. 删除bootstrap/cache目录下的所有文件,本地生成的配置、路由缓存上传到服务器会失效,删除后Laravel会重新读取最新配置
  3. 确认.env文件本身权限设置为644,避免读取失败
  • 错误日志排查
    访问站点后查看storage/logs目录下是否生成laravel.log日志文件,若存在直接查看日志内容即可定位具体报错点。若未生成日志,在public/index.php文件最顶部加入以下代码开启PHP原生错误显示:
ini_set('display_errors', 1);
error_reporting(E_ALL);

再次访问站点即可看到PHP层面的报错信息,可针对性处理

  • 重写规则问题
  1. 确认public目录下Laravel自带的.htaccess文件正常上传,该文件负责路由重写,缺失会导致请求无法正常处理
  2. 可直接访问你的域名/public/index.php测试是否正常加载,若可以说明根目录的重写规则存在适配问题,你可以将public目录下的所有文件移动到网站根目录,同时修改根目录下index.php的路径引用:
    将
$app = require_once __DIR__.'/../bootstrap/app.php';

改为

$app = require_once __DIR__.'/bootstrap/app.php';

同时修改自动加载的引用路径即可,该方式适配多数不支持根目录重写到子目录的共享主机环境

  • 文件权限及完整性问题
  1. 确认storage、bootstrap/cache目录的权限设置是递归生效的,即子目录和文件也同步设置为755,仅修改父目录权限不会自动应用到子目录
  2. 重新同步vendor目录,FTP传输大量文件时容易出现丢包漏传的情况,缺失核心类文件会直接导致程序中断,可将本地vendor目录打包后上传,有条件可让主机商协助在线解压避免文件丢失

内容的提问来源于stack exchange,提问作者frontend-newb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:54:05