Laravel 7部署至cPanel后显示空白页问题求助
Laravel 7 部署到 cPanel 空白页排查方案
1. 先查看具体错误信息
空白页大多是PHP错误被屏蔽,先开启错误显示定位问题:
- 在
public/index.php最顶部添加代码:ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); - 或者直接查看cPanel的「错误日志」功能,找到网站的PHP错误记录。
2. 修复目录权限
Laravel需要storage和bootstrap/cache目录有写入权限:
- 通过cPanel文件管理器右键选中这两个目录,修改权限为
755(或775,根据主机用户组配置); - 若有SSH权限,执行命令:
chmod -R 755 storage bootstrap/cache chown -R 你的cPanel用户名:你的cPanel用户名 storage bootstrap/cache
3. 确认PHP版本兼容性
Laravel 7 要求PHP版本 ≥7.2.5,你当前根目录.htaccess指定了PHP7.4,需确保:
- 在cPanel的「PHP版本管理器」中直接设置网站使用PHP7.4(比.htaccess的AddHandler更可靠);
- 若主机不支持PHP7.4,升级到符合要求的版本。
4. 优化根目录重写规则(或修改文档根目录)
方案一:调整根目录.htaccess规则
当前规则可能存在跳转问题,替换为:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ /public/$1 [L,R=301] </IfModule> <IfModule mime_module> AddHandler application/x-httpd-alt-php74 .php .php7 .phtml </IfModule>
同时确认cPanel已启用mod_rewrite模块(可联系主机商确认)。
方案二:修改网站文档根目录(推荐)
Laravel官方推荐将public目录设为网站根目录:
- 在cPanel的「域名」管理中,找到对应域名的「文档根目录」设置,修改为
public文件夹路径(比如public_html/your-site/public)。
5. 完善.env配置
- 确保已复制
.env.example为.env文件,若没有则手动创建; - 执行
php artisan key:generate生成应用密钥(cPanel可通过「终端」功能运行该命令); - 设置
APP_DEBUG=true(仅开发环境使用,生产环境改为false),APP_URL填写你的网站域名。
6. 验证public目录.htaccess
当前public目录的.htaccess是Laravel默认配置,若前面步骤都完成后仍有问题,可尝试注释掉Options -MultiViews -Indexes行,测试是否生效。
内容的提问来源于stack exchange,提问作者etranz
相关产品推荐
相关产品推荐

