laravel新建项目后页面空白,主因是框架启动失败,需优先检查php错误显示(display_errors=on)、app_debug=true并执行config:clear、storage和bootstrap/cache目录的可写权限(chown -r www:www及chmod -r 755),并验证日志写入与路由加载是否正常。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

新建Laravel项目后页面空白,说明框架连启动流程都没走完,连错误提示都来不及输出就中断了,这种情况必须从底层运行环境和基础权限开始排查。
确认PHP错误显示是否开启
浏览器白屏但无任何报错,第一反应不是代码写错了,而是PHP根本没把错误吐出来。打开php.ini文件,搜索display_errors,确保其值为On;同时检查error_reporting是否至少包含E_ALL。若用宝塔或Docker,还需确认PHP-FPM配置中也未覆盖该设置——【display_errors=Off是白屏最隐蔽的元凶】。
这一步操作起来很简单,直接用vim或编辑器打开php.ini改两行就行。
检查APP_DEBUG是否启用
进入项目根目录,打开.env文件,确认APP_DEBUG=true。如果已是true但依然空白,立刻执行php artisan config:clear——因为config:cache会固化旧配置,不清理就永远读不到新值。切记:修改.env后不执行config:clear,等于没改。
APP_DEBUG=false时,Laravel会静默吞掉所有异常,连storage/logs/laravel.log都不会写入,导致你完全失去线索。
验证storage和bootstrap/cache可写性
第一步:确认Web服务器用户。宝塔默认为www,Nginx常见为nginx,Apache多为www-data——【必须和PHP-FPM实际运行用户完全一致】。
第二步:进入项目根目录,执行以下命令:
sudo chown -R www:www storage/ bootstrap/cache/
sudo chmod -R 755 storage/ bootstrap/cache/
注意:漏掉bootstrap/cache/会导致Laravel连autoload都加载失败,比storage更早卡死。
第三步:若系统启用了SELinux(如CentOS),还需放行上下文:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/your-project-path/storage(/.*)?" && sudo restorecon -Rv /your-project-path/storage
快速验证日志是否可写
方法一:手动触发日志写入。在routes/web.php里临时加一行:
Route::get('/test-log', function () { \Log::info('test write'); return 'logged'; });
访问/test-log,再查看storage/logs/laravel.log末尾是否有新记录。没有则说明日志通道彻底失效。
方法二:直接测试目录写权限:
touch storage/test.txt && echo "ok" > storage/test.txt && cat storage/test.txt
任一环节失败,都证明storage不可写,必须回退到上一步重设权限。
检查路由是否真正生效
执行php artisan route:list,观察输出是否为空或报错。若报“Class not found”或“Target class does not exist”,说明自动加载失败,大概率是vendor未安装或composer.json损坏。
此时应删除vendor目录和composer.lock,重新运行composer install --no-dev --optimize-autoloader。
别跳过--no-dev参数——开发依赖混入生产环境可能引发不可预知的类冲突。











