zoukankan      html  css  js  c++  java
  • 使用现代化工具 Capistrano 自动部署 PHP 应用代码到生产环境

    准备工作

    本机 win10 ; 远程 centos 7

    远程需安装 lnmp 环境,git、composer 工具

    本机创建秘钥对

    ssh-keygen -t rsa -m PEM
    

    远程创建用户

    # 创建用户
    useradd deploy
    # 让用户拥有sudo权限
    usermod -a -G wheel deploy
    # 设置用户密码
    passwd deploy
    

      

     已创建的用户 deploy 登录后操作

    mkdir .ssh && cd .ssh
    #用 sz 命令上传之前本地生成的公钥到 .ssh 目录
    rz
    #重命名
    mv id_rsa.pub authorized_keys

    本机安装 Capistrano

    1,安装 ruby

    先安装 ruby gem 环境:使用rubyinstaller官网推荐的配置即可,本文基于 Ruby+Devkit 2.6.3-1 (x64)

    官网:https://rubyinstaller.org/

    传统的win软件安装步骤,需要注意的是,如果只是为了使用Capistrano,不需要安装 MSYS2 system,且注意勾选添加到系统环境变量。

    2,然后安装

    gem install capistrano

    capistrano地址:https://capistranorb.com/documentation/getting-started/installation/

    3,安装 Capistrano 之后,为了使用 Capistrano,必须初始化项目。打开终端,进入项目的根目录,执行下面的命令:比如在:G:/test,运行下面命令生成 Capistrano 的配置文件:

    cap install
    

    这个命令会创建 Capfile 文件,config/ 目录和 lib/ 目录。现在,项目目录结构应该如下所示:

    Capfile
    config/
        deploy/
            production.rb
            staging.rb
        deploy.rb
    lib/
        capistrano/
            tasks/
    

    配置 deploy.rb 文件

    lock "~> 3.16.0"
    
    set :application, "my_app_name"
    
    set :repo_url, "https://gitee.com/cshaptx4869/thinkphp-crontab.git"
    
    namespace :deploy do
        desc "Build"
        after :updated, :build do
            on roles(:web) do
                within release_path do
                    execute :composer, "install"
                end
            end
        end
    end

    配置 production.rb 文件

    role :web, %w{deploy@192.168.0.121}
    

    部署应用

    正式部署应用之前,需要确保应用代码已提交并推送到 Git 仓库,然后在本地电脑打开终端,进入应用的最顶层目录,执行下面的命令进行部署:

    # 检查
    cap production deploy:check
    
    cap production deploy
     

     

     

    回滚应用

    如果不慎把错误代码提交到生产环境,可以执行下面的命令回到之前的版本:

    cap production deploy:rollback

    参考:

    https://laravelacademy.org/post/7508

    https://laravelacademy.org/post/7530

    https://stackoverflow.com/questions/57968022/capistrano-deployment-error-in-rails-application

     
    分情破爱始乱弃,流落天涯思别离。 如花似玉负情意,影如白昼暗自迷。 随风浮沉千叶落,行色匆匆鬓已稀。
  • 相关阅读:
    es学习-java操作 2.4.0版本
    es学习-基础增删改查
    mongodb 查询条件
    mongodb-查询
    mysql 性能优化
    mysql 存储过程学习(总)
    MySQL 存储过程 -流程控制的使用
    MySQL 存储过程 -光标的使用
    maven的聚合和继承
    mavean的依赖传递和排除依赖
  • 原文地址:https://www.cnblogs.com/cshaptx4869/p/15407697.html
Copyright © 2011-2022 走看看