Laravel项目部署至Cpanel后访问出现空白页问题求助
Laravel部署到Cpanel后访问路由显示空白页的排查解决步骤
1. 先看错误日志,定位核心问题
空白页几乎都是因为PHP错误被屏蔽,直接看Laravel日志:
- 找到项目根目录下的
storage/logs/laravel.log,查看最新的日志条目,里面会明确显示报错原因(比如权限不足、依赖缺失、路径错误、数据库连接失败等)。 - 如果日志无法访问,临时修改
public_html/index.php,在文件最顶部添加:
刷新页面就能看到具体错误信息。ini_set('display_errors', 1); error_reporting(E_ALL);
2. 确认目录权限设置
Laravel需要特定目录有读写权限:
- 将
storage、bootstrap/cache目录的权限设为755或775(部分主机可能需要777,但优先选前两者),目录内文件权限设为644。 - 在Cpanel文件管理器中右键对应目录,选择「更改权限」,勾选对应权限即可。
3. 修正部署目录结构与index.php路径
Cpanel的网站根目录是public_html,正确部署逻辑是:
- 把Laravel项目的所有文件(除了
public目录)上传到Cpanel的根目录(也就是public_html的同级目录)。 - 把Laravel项目
public目录下的所有文件/文件夹,全部移动到public_html目录里。 - 修改
public_html/index.php中的路径:
找到这两行:
根据你项目文件的实际位置调整路径,比如项目文件放在根目录的require __DIR__.'/../vendor/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php';laravel-project文件夹里,就改成:
路径错误会直接导致无法加载核心文件,出现空白页。require __DIR__.'/../laravel-project/vendor/autoload.php'; $app = require_once __DIR__.'/../laravel-project/bootstrap/app.php';
4. 检查.env配置文件
- 确保项目根目录存在
.env文件,没有的话复制.env.example并重命名为.env。 - 生成应用密钥:如果有Cpanel终端,执行
php artisan key:generate;没有终端的话,手动生成32位随机字符串,放到.env的APP_KEY字段中(格式:APP_KEY=base64:xxxxxx)。 - 验证
APP_URL是否设为你的域名(比如APP_URL=http://mydomain.com),数据库配置(DB_HOST、DB_DATABASE、DB_USERNAME、DB_PASSWORD)是否正确,路由用到数据库的话,配置错误会引发致命错误。
5. 清除Laravel缓存
缓存过期或配置缓存错误也可能导致空白页:
- 如果有Cpanel终端/SSH权限,执行以下命令:
php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear - 没有终端权限的话,手动删除
bootstrap/cache目录下的所有文件(注意不要删文件夹本身)。
内容的提问来源于stack exchange,提问作者A M
相关产品推荐
相关产品推荐

