温馨提示×

centos中laravel部署工具有哪些

小樊
41
2025-11-29 17:18:55
栏目: 智能运维

CentOS 上常用的 Laravel 部署工具与方案

一 手工部署与脚本化

  • 适用场景:服务器数量少、变更不频繁、需要完全掌控每一步。
  • 关键组件:PHP 7.2+ComposerNginx/ApacheMariaDB/MySQL;通过命令行完成安装依赖、生成密钥、迁移与缓存优化。
  • 基本流程要点:
    • 安装与启动服务(如:Nginx/ApachePHP-FPMMariaDB)。
    • 配置 Web 服务器(Nginx 示例 root 指向项目 public 目录,启用 try_files 转发到 index.php;PHP-FPM 使用 Unix Socket 与 Web 服务器通信)。
    • 部署步骤:git clone/rsync 代码 → composer install --no-dev --optimize-autoloaderphp artisan key:generatephp artisan migrate --forcephp artisan config:cache / route:cache / view:cache
    • 权限与安全:目录 storagebootstrap/cache 可写;配置 .env 与数据库;放行 80/443 端口;关闭调试模式 APP_DEBUG=false

二 容器化与编排

  • 适用场景:环境一致性要求高、需要快速扩缩容、微服务化或混合部署。
  • 核心工具:Docker(构建 PHP-FPM 镜像)、Docker Compose(编排应用与数据库)、可选 Nginx 作为反向代理/静态资源服务。
  • 基本流程要点:
    • 构建镜像(示例 FROM php:7.4-fpm,安装 git/zip/unzip,拷贝 Composer 并执行 composer install --optimize-autoloader --no-dev)。
    • 使用 docker-compose.yml 定义服务(如 webdb),挂载代码卷,设置环境变量(如 MYSQL_ROOT_PASSWORDMYSQL_DATABASE 等)。
    • 可选 Nginx 配置:root 指向 /var/www/html/public,location 规则与 try_files 转发到 index.php,PHP 通过 fastcgi_pass 连接 PHP-FPM。

三 CI/CD 自动化部署

  • 适用场景:团队开发、多环境(测试/预发/生产)持续交付、降低人工失误。
  • 常用工具与平台:GitLab CI/CDGitHub ActionsJenkins 等;通过流水线实现构建、测试、制品发布与远程部署。
  • 基本流程要点(以 GitLab CI/CD 为例):
    • 在仓库根目录配置 .gitlab-ci.yml,定义 stages: build → test → deploy
    • 构建阶段:composer install --optimize-autoloader --no-dev、生成密钥、缓存配置。
    • 测试阶段:运行 phpunit 等单元/功能测试。
    • 部署阶段:使用 SSH 将产物同步到目标服务器(如 rsync -avz --delete),仅对 master/main 分支触发;服务器需预先配置 SSH 免密登录 与目录权限。

四 常见辅助工具与选择建议

  • 辅助工具与用途
    • Supervisor:守护队列进程(如 php artisan queue:work),保障任务常驻运行与自动重启。
    • Certbot(Let’s Encrypt):自动化申请与续期 HTTPS/TLS 证书,配置 Nginx 启用 443 与证书路径。
    • Deployer(PHP):基于 SSH 的“零停机”发布工具,支持多服务器、回滚、共享目录与任务编排。
    • rsync/Scp:轻量级文件同步与发布,适合简单场景或作为 CI/CD 的部署步骤。
    • 防火墙与安全firewalld 放行 80/443;数据库仅监听内网;.env 不纳入版本控制;禁用 APP_DEBUG 于生产。
  • 选择建议
    • 个人/小团队、快速上线:优先“手工部署 + 脚本化”或“Deployer”。
    • 环境一致性/弹性伸缩:优先“Docker + Docker Compose”。
    • 规范化团队协作与多环境交付:优先“CI/CD 流水线”(GitLab CI/Jenkins/GitHub Actions)。

0