Laravel 11网站部署至Hostinger服务器后无法正常运行求助
Laravel 11 部署至 Hostinger 故障排查方案
一、调整目录结构(核心步骤)
Hostinger 的网站根目录是 public_html,正确部署逻辑是将 Laravel 核心文件与网页根目录分离:
- 将 Laravel 项目中除
public文件夹外的所有文件,上传到 Hostinger 根目录下的独立文件夹(比如/home/你的用户名/laravel-project),不要放在public_html内。 - 将
public文件夹里的全部内容,复制/移动到public_html目录下,覆盖原有文件。
二、修改 public_html/index.php 路径
打开 public_html 里的 index.php,修改以下两行代码,指向外部的 Laravel 核心目录:
// 原代码 require __DIR__.'/../vendor/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php'; // 修改后(路径对应你刚才创建的 Laravel 核心文件夹) require __DIR__.'/../laravel-project/vendor/autoload.php'; $app = require_once __DIR__.'/../laravel-project/bootstrap/app.php';
三、配置 .htaccess(public_html 目录下)
如果 public_html 里没有 .htaccess,新建一个并写入 Laravel 官方规则:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # 处理授权头 RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # 移除尾部斜杠 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # 所有请求转发到 index.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
四、设置文件权限
通过 Hostinger 文件管理器或 SSH 终端,给 Laravel 核心目录的关键文件夹设置权限:
# 给 storage 和 bootstrap/cache 设 755 权限 chmod -R 755 /home/你的用户名/laravel-project/storage chmod -R 755 /home/你的用户名/laravel-project/bootstrap/cache
五、配置环境变量与应用密钥
在 Laravel 核心目录下,复制
.env.example为.env,修改以下关键配置:APP_URL:设置为你的域名(比如https://yourdomain.com)DB_*:填写 Hostinger 提供的数据库账号、密码、地址APP_DEBUG:生产环境设为false,调试阶段可临时设为true查看错误
生成应用密钥(通过 Hostinger 控制面板的终端工具执行):
php artisan key:generate
六、清除缓存
执行以下命令清理 Laravel 缓存,避免配置冲突:
php artisan config:clear php artisan cache:clear php artisan route:clear php artisan view:clear
七、额外检查项
- 确认 Hostinger 的 PHP 版本为 8.2 及以上(Laravel 11 最低要求),可在 Hostinger 控制面板的「PHP 配置」里调整。
- 查看错误日志:Hostinger 控制面板的「日志」选项,或 Laravel 核心目录下的
storage/logs/laravel.log,根据具体错误信息进一步排查。
内容的提问来源于stack exchange,提问作者Bhanu Prasad
相关产品推荐
相关产品推荐

