使用現代化工具 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{[email protected]}

 

部署應用

正式部署應用之前,需要確保應用代碼已提交併推送到 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

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章