laravel 8 在宝塔面板部署核心四步:一、网站运行目录设为 /public;二、.env 配置 app_env=production 且 app_debug=false;三、storage 和 bootstrap/cache 目录属主为 www 并可写;四、伪静态选“laravel 5”规则并重载 nginx。

一、上传代码并正确设置网站运行目录
别把整个 Laravel 项目(含 app/、config/)直接设为网站根目录——这是最常见错误。
- 上传完整项目到宝塔指定路径,比如
/www/wwwroot/myapp - 进入「网站」→ 找到对应站点 → 「设置」→ 「网站目录」
- 把「运行目录」填成
/public(注意是斜杠开头的相对路径,不是绝对路径) - 保存后,宝塔会自动将 Nginx 的
root指向/www/wwwroot/myapp/public
二、配置生产环境与基础权限
Laravel 8 要求 PHP ≥ 7.3,推荐 PHP 8.0+;同时必须启用 mbstring、xml、tokenizer、opcache 等扩展。
- 进「软件商店」→ 找到你用的 PHP 版本 → 「设置」→ 「安装扩展」→ 勾选上述扩展,重启 PHP
- SSH 进入项目根目录,执行:
cp .env.example .envphp artisan key:generate - 编辑
.env,确保:APP_ENV=productionAPP_DEBUG=falseAPP_URL=https://your-domain.com(HTTPS 域名要一致) - 执行缓存清理:
php artisan config:clearphp artisan cache:clearphp artisan view:clear
三、设置 storage 和 cache 目录可写
PHP 进程(用户 www)必须能往这两个目录写日志、缓存、session。
- 在终端执行(路径替换成你的实际项目路径):
chown -R www:www /www/wwwroot/myapp/storage /www/wwwroot/myapp/bootstrap/cachechmod -R u+rwX /www/wwwroot/myapp/storage /www/wwwroot/myapp/bootstrap/cache - 或用宝塔「文件管理器」右键这两个文件夹 → 「权限」→ 勾选「递归修改」→ 设为 755,属主属组都选
www - 检查是否生效:
ls -ld storage应显示属主为www,且有rwx权限
四、启用 Laravel 专用伪静态规则
没这一步,所有非首页路由(如 /login、/api/users)都会 404。
- 进「网站」→ 「设置」→ 「伪静态」选项卡
- 下拉选择「Laravel 5」(它完全兼容 Laravel 8)
- 确认生成的内容包含这一行:
try_files $uri $uri/ /index.php?$query_string; - 保存后,系统会提示重载 Nginx —— 务必点「确定」,否则规则不生效
- 验证方法:访问一个不存在的路由(如
/test-abc123),如果返回 Laravel 的 404 页面,说明伪静态已起作用;如果返回 Nginx 默认 404,说明没生效











