准备工作

本机 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 自动部署 PHP 应用代码到生产环境

 

 

 

本机安装 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
 
使用现代化工具 Capistrano 自动部署 PHP 应用代码到生产环境

 

 使用现代化工具 Capistrano 自动部署 PHP 应用代码到生产环境

使用现代化工具 Capistrano 自动部署 PHP 应用代码到生产环境

使用现代化工具 Capistrano 自动部署 PHP 应用代码到生产环境

 使用现代化工具 Capistrano 自动部署 PHP 应用代码到生产环境

 

 

回滚应用

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

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

 

相关文章:

  • 2021-04-21
  • 2021-11-03
  • 2021-06-28
  • 2022-03-03
  • 2021-06-13
  • 2021-12-25
  • 2021-06-02
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-28
  • 2021-11-28
  • 2021-12-30
  • 2021-06-16
相关资源
相似解决方案