页面空白、500错误等问题主因是权限、配置、缓存、环境四环节未对齐;需依次查日志(storage/logs/laravel.log末行)、验环境(php artisan tinker验证APP_KEY和DB连接)、清缓存(按config→cache→view→route顺序执行artisan命令)、调权限(storage与bootstrap/cache设775并归属www用户)、测路由(php artisan route:list验证)。

部署Laravel项目后页面空白、500错误、后台打不开、接口返回空数据——这些问题不是随机出现的,而是权限、配置、缓存、环境四个环节中某一处没对上。
查日志:先看storage/logs/laravel.log最后一行
这一步操作起来很简单,直接用宝塔面板文件管理器打开/www/wwwroot/your_project/storage/logs目录,双击最新生成的laravel.log文件,滚动到底部看最后一行报错内容。
如果日志为空或没有新记录,说明错误发生在PHP解析阶段之前,比如Nginx未正确转发请求到public/index.php,或者.env文件根本没被读取——此时要跳过日志,直接检查环境配置。
注意:不要清空日志再重试,清空后会丢失原始上下文,反而更难定位。
验环境:确认APP_KEY和数据库连接已生效
第一步:进入项目根目录,运行php artisan tinker,输入env('APP_KEY')回车。如果返回null或空字符串,说明.env未加载或APP_KEY缺失。
第二步:执行php artisan key:generate生成密钥并写入.env,该命令会自动覆盖原有APP_KEY=行,无需手动编辑。
第三步:运行php artisan db:table(需Laravel 10+)或php artisan tinker → DB::connection()->getPdo(),若抛出PDOException,则证明数据库凭证不匹配——此时必须核对DB_HOST是否为127.0.0.1而非localhost(宝塔MySQL默认禁用socket连接,用localhost会导致连接失败)。
清缓存:四类缓存必须逐个清除
方法一:Artisan命令清缓存
执行php artisan config:clear→php artisan cache:clear→php artisan view:clear→php artisan route:clear,顺序不能颠倒,否则config:clear后其他命令可能因配置未重载而失效。
方法二:手动删缓存文件
删除bootstrap/cache/config.php、storage/framework/views/下全部文件、storage/framework/cache/data/下全部文件——【不要删storage/framework/sessions/】,删了会导致所有用户登录态丢失。
调权限:storage与bootstrap/cache必须可写
在宝塔面板文件管理器中,选中storage目录→右键→设置权限→输入775→勾选“同时修改子文件权限”→用户组选www。
同样操作处理bootstrap/cache目录。这两个目录权限不对,php artisan命令会直接报Permission denied,且Laravel无法写入日志、缓存、会话文件。
public目录保持755即可,设成777反而可能触发Nginx安全模块拦截。
测路由:用artisan快速验证路由是否注册成功
运行php artisan route:list --columns=method,uri,name,观察输出是否包含你定义的路由。如果列表为空或缺少关键路由,说明routes/web.php或routes/api.php未被加载——此时检查app/Providers/RouteServiceProvider.php中boot()方法是否调用了$this->routes(),以及 RouteServiceProvider::class是否已在config/app.php的providers数组中注册。


















