将本地开发的 Laravel 项目通过宝塔面板部署到生产环境,核心步骤包括环境准备、代码上传、配置调整与权限设置。首先需在宝塔安装 LNMP 环境并确保 PHP 版本≥8.1 及必要扩展;上传代码后,将网站运行目录指向 public 子目录;配置 Nginx 伪静态规则为 Laravel 5 以支持路由;修改.env 文件设置生产环境参数并关闭调试模式;最后修正 storage 与 bootstrap/cache 目录权限为可写,并执行缓存清理命令即可完成部署。
Laravel 如何部署到宝塔面板_Laravel 生产环境上线步骤【实战】
Laravel 如何部署到宝塔面板_Laravel 生产环境上线步骤【实战】上线 Laravel 必须用 Nginx/Apache + PHP-FPM,核心是权限、路径、伪静态和环境配置四件事:确保 PHP ≥ 8.1 且启用必要扩展;网站根目录指向 public/;配置 Laravel 伪静态规则;重置 .env 并执行 config:cache 等缓存清理命令。直接上生产环境前,php artisan serve 肯定不能用,宝塔面板里必须用 Nginx/Apache + PHP-FPM 托管 Laravel,核心是权限、路径、伪静态和环境配置四件事。确认宝塔 PHP 版本和扩展是否满足 Laravel 要求 Laravel 10+ 要求 PHP ≥ 8.1,且必须启用 openssl、pdo、mbstring、tokenizer、xml、ctype、json、zip(如果要用 php artisan storage:link 或压缩包部署)。在宝塔「软件商店」→「PHP 管理」里点进你选的 PHP 版本 →「安装扩展」勾选上述模块,重启 PHP-FPM php -v 和 php -m | grep -E "openssl|pdo|mbstring" 可在终端验证 (宝塔终端或 SSH 进去执行) 若用 Laravel Scout + Algolia 或队列 + Redis,还得额外装 redis 扩展,并确保宝塔已部署 Redis 服务 上传代码并设置正确的网站根目录 Laravel 的 Web 入口是 public/目录,不是项目根目录。宝塔新建站点时,「网站目录」必须指向/www/wwwroot/your-site.com/public,而不是/www/wwwroot/your-site.com。上传完整 Laravel 项目 (含.env、composer.json 等) 到/www/wwwroot/your-site.com 在宝塔「网站」→「设置」→「网站目录」中,把「运行目录」改为/public(这是最稳妥方式,比手动改根路径更可靠) 别忘了改完后点击「保存」,否则 Nginx 配置不会重载 如果用 storage:link 命令生成软链接,需在 SSH 中进入项目根目录执行:cd /www/wwwroot/your-site.com && php artisan storage:link,并确保 storage/和 bootstrap/cache/可写 (宝塔文件管理器右键「权限」设为 755,属主保持 www) 配置 Nginx 伪静态规则 (关键!否则 404) 宝塔默认不带 Laravel 伪静态,必须手动加。否则除首页外所有路由都 404。大模型实验室 Lab4AI 高性能算力驱动的 AI 实践内容生态社区 在「网站」→「设置」→「伪静态」选项卡中,选择「Laravel 5」(它适配 Laravel 5–11,规则通用) 若没这个选项,粘贴以下规则 (注意替换 your-site.com 为实际域名):(2026 年 2 月 10 日)
Laravel 项目怎么部署到宝塔面板_Laravel 生产环境配置与 Nginx 伪静态设置【流程】
Laravel 项目怎么部署到宝塔面板_Laravel 生产环境配置与 Nginx 伪静态设置【流程】Laravel 项目在宝塔面板部署需确保:.env 配置为 production 环境并关闭 DEBUG,清除缓存,storage 和 bootstrap/cache 可写,Nginx 指向 public 目录并启用 Laravel 伪静态,PHP 版本与扩展匹配,APP_URL 同步 HTTPS 域名,数据库配置正确,日志权限正常。确认 Laravel 项目已适配生产环境 宝塔面板本身不关心你用什么框架,但它会严格按 PHP 运行时和 Nginx 配置来执行。Laravel 在本地开发能跑,不代表丢到宝塔就能直接访问 —— 最常见的失败原因是.env 没改、APP_DEBUG 没关、缓存没清。APP_ENV=production 和 APP_DEBUG=false 必须写在服务器上的.env 里 (不是本地的) 执行 php artisan config:clear、php artisan cache:clear、php artisan view:clear,否则配置仍走缓存 storage/和 bootstrap/cache/目录必须可写,宝塔新建站点时默认权限是 755,需手动设为 775 或用 chown -R www:www storage bootstrap/cache 如果用了队列或 Horizon,记得启动 supervisor 并指向正确的 artisan queue:work 命令 Nginx 配置必须指向 public 目录,且启用伪静态 宝塔建站时选"Laravel"会自动套用规则,但实际常被忽略两点:一是根目录设错 (设成项目根而非 public),二是伪静态规则没生效 (比如用了 Apache 规则却配在 Nginx 下)。站点设置 → “网站目录” → “运行目录”必须选/public(不是/) 伪静态 →选"Laravel 5",内容等价于以下 Nginx 配置片段:复制 AI 写代码 location / { try_files $uri $uri/ /index.php?$query_string; } 如果用了 Vue Router 的 history 模式或自定义 API 路由,需额外排除静态资源路径,例如:location ^~ /api/ { try_files $uri $uri/ /index.php?$query_string; } 别手动生成.htaccess 放进去 —— Nginx 不读这个文件 PHP 版本与扩展必须匹配 Laravel 版本要求 宝塔默认装的是 PHP 8.0+,但老项目可能基于 Laravel 6/7,依赖 php-xml、php-mbstring、php-tokenizer、php-bcmath 等扩展。缺一个,composer install 或 artisan 命令就会报错。ProfilePicture.AI 进宝塔 → PHP 设置 → “安装扩展”,勾选上述常用扩展 (尤其 opcache 建议开启,提升性能) 检查 php -v 和 php -m | grep mbstring 确认 CLI 模式下也加载了扩展 (宝塔有时只开 FPM 模块,CLI 仍缺失) Laravel 10 要求 PHP ≥ 8.1,若用宝塔一键部署旧版 PHP,得手动升级或切换 PHP 版本管理器 Composer 安装依赖时若卡住,先运行 compos(消息于 2026 年 1 月 10 日发布)
宝塔面板怎么部署 Laravel 项目_Laravel 环境配置方法【指南】
宝塔面板怎么部署 Laravel 项目_Laravel 环境配置方法【指南】 laravel 在宝塔面板跑不起来主因是根目录未设为 public、www 用户无 storage/cache 写入权限、php cli 路径与面板不一致、app_debug 关闭导致错误不显示;需依次修正路径、权限、php 配置及调试设置。宝塔面板里 Laravel 项目跑不起来,多半是 public 目录没设对 宝塔默认把网站根目录指向整个 Laravel 项目文件夹,但 Laravel 的入口必须是 public 子目录,否则 index.php 找不到、路由 404、静态资源 403 都会立刻出现。实操建议:在宝塔「网站」列表中,点击对应站点 → 「设置」→ 「网站目录」→把「网站根目录」改成/www/wwwroot/your-site-name/public 顺手勾选「防跨站攻击 (open_basedir)」并点击右侧「关闭」——Laravel 的 storage 和 bootstrap/cache 需要写入权限,open_basedir 会拦住它 别改错成 public/index.php,根目录只到 public 这一层,不是文件 Laravel 写日志或上传文件报错 Permission denied 宝塔用的是 www 用户运行 PHP,而 Laravel 的 storage 和 bootstrap/cache 默认属主可能是 root 或部署用户,PHP 进程根本写不进去。实操建议:SSH 登录服务器,进项目根目录执行:chown -R www:www storage/ bootstrap/cache/ 确保目录权限至少是 755,文件是 644;如果还报错,临时试下 chmod -R 775 storage/ bootstrap/cache/(上线前应调回更严权限) 别只改 storage/logs,storage/framework/views 和 storage/framework/sessions 同样需要可写 php artisan migrate 在宝塔终端里执行失败 常见现象是提示 Class 'PDO' not found 或连不上数据库,本质是宝塔的 PHP 环境和你在终端里用的不是同一个 —— 宝塔面板用的是它自己编译/安装的 PHP(比如/www/server/php/81/bin/php),而系统默认 php 命令可能指向别的版本或根本没装 CLI 模块。实操建议:先确认宝塔当前网站用的 PHP 版本 (如 8.1),然后用完整路径执行:/www/server/php/81/bin/php artisan migrate 检查该 PHP 是否启用了 pdo_mysql:运行 /www/server/php/81/bin/php -m | grep pdo ,没输出就去宝塔「软件商店」→「PHP 设置」→「配置文件」里确认扩展已开启 .env 文件必须存在且权限不能是 600(宝塔 PHP 进程读不到),推荐 644,内容里的 DB_HOST 别写 localhost,换成 127.0.0.1 更稳 Nginx 报 500 Internal Server Error,但日志里没明显错误 这通常是因为 Laravel 的 APP_DEBUG=false 关掉了详细报错,而 Nginx 错误日志默认不记录 PHP 致命错误细节。你看到的只是“上游返回了空响应”这类模糊提示。(来自 2026 年 3 月 12 日的资料)
FAQ
宝塔面板部署 Laravel 时网站根目录应该指向哪里?
必须指向项目的 public 子目录,而不是项目根目录,否则会导致路由 404 或静态资源无法访问。
部署后页面出现 404 错误如何解决?
通常是因为未配置伪静态规则,需在宝塔网站设置中选择 Laravel 5 伪静态模板。
遇到 Permission denied 错误怎么办?
需将 storage 和 bootstrap/cache 目录的权限设置为 775 或将属主修改为 www 用户。