宝塔面板自动部署 Laravel 应用教程

2025.5.29 杂七杂八 763

宝塔面板自动部署 Laravel 应用教程 杂七杂八-第1张

本文详细介绍如何使用宝塔面板实现Laravel应用的自动化部署,涵盖环境配置、项目部署、Nginx设置等关键步骤,帮助开发者快速搭建高效稳定的Laravel生产环境,提升部署效率。

一、准备工作

在开始部署之前,请确保已完成以下准备工作:

  • 已安装最新版宝塔面板(推荐7.9+版本)
  • 服务器配置满足Laravel运行要求(PHP 8.0+,MySQL 5.7+)
  • 已获取项目代码仓库访问权限(Git/SVN)
  • 域名已解析到服务器IP

二、环境配置

1. 安装必要组件

登录宝塔面板,进入”软件商店”安装以下组件:

- PHP 8.2(需包含以下扩展)
  • fileinfo
  • opcache
  • redis
  • pdo_mysql
- MySQL 5.7+
- Nginx 1.2+
- Redis(可选)
- Supervisor(进程管理)

2. 创建站点

在宝塔面板点击”网站”→”添加站点”:

  1. 输入域名(如:example.com)
  2. 选择PHP版本(8.2)
  3. 创建MySQL数据库(记录数据库名、用户名和密码)
  4. 取消勾选”创建FTP”(推荐使用SSH)

三、项目部署

1. 通过Git自动部署

进入站点设置→”部署”标签页:

1. 选择Git版本管理
2. 填写仓库地址(SSH格式)
3. 设置部署分支(通常为main/master)
4. 配置Webhook(用于自动触发部署)
5. 添加部署后执行脚本:
!/bin/bash
git reset --hard origin/master
git pull origin master
composer install --no-dev
cp .env.example .env
php artisan key:generate
php artisan migrate --force
php artisan cache:clear
chown -R www:www 

2. 文件权限设置

通过SSH连接到服务器,执行以下命令:

cd /www/wwwroot/example.com
chmod -R 755 storage
chmod -R 755 bootstrap/cache

四、Nginx配置优化

修改站点Nginx配置文件:

server {
    listen 80;
    server_name example.com;
    root /www/wwwroot/example.com/public;
    
    index index.php index.;
    
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ .php$ {
        fastcgi_pass unix:/tmp/php-cgi-82.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    location ~ /.(?!well-known). {
        deny all;
    }
    
     静态文件缓存
    location ~ .(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 365d;
    }
}

五、定时任务配置

在宝塔面板添加计划任务:

 每日凌晨执行队列任务
0 0    php /www/wwwroot/example.com/artisan schedule:run >> /dev/null 2>&1

 每五分钟检查队列
/5     php /www/wwwroot/example.com/artisan queue:work --sleep=3 --tries=3

六、常见问题解决

  1. 502 Bad Gateway:检查PHP版本是否匹配,PHP服务是否正常运行
  2. 目录权限问题:确保storage和bootstrap/cache目录可写
  3. Composer安装失败:检查内存是否充足,可添加swap空间
  4. 数据库连接错误:核对.env文件中的数据库配置

通过以上步骤,您已成功实现Laravel应用在宝塔面板上的自动化部署。这种部署方式不仅高效可靠,还能通过Webhook实现代码推送后的自动更新,极大提升开发运维效率。

评论