windows下安装配置capistrano

网上很多教程都是基于Ubuntu或centos做的,故此写下Win的教程,以备忘。

首先明确,Capistrano安装在本地设备中,部署应用(本文是php,不过它能被用来部署所有语言的程序)时,Capistrano会在本地设备中执行SSH命令,与远程服务器进行通信。Capistrano会在远程服务器中保存之前部署的应用,而且每次部署的版本放在各自的目录中,它能够维护五个或更多之前部署的应用,以防需要回滚到之前的版本。它创建一个名为current的目录,通过符号链接(软连接)到当前部署的应用所在的目录(即当前生产环境所使用的的应用目录)。在生产环境Capistrano管理的目录结构可能如下:

home/
    deploy/
        apps/
            my_app/
                current/
                releases/
                    release1/
                    release2/
                    release3/
                    release4/

把新版应用部署到生产环境时,Capistrano 首先从应用的 Git 仓库或其他自定义的仓库获取最新版代码,然后把应用的代码放到 releases/ 目录中的一个新子目录中,最后把 current/ 目录的符号链接指向这个新目录。当需要 Capistrano 回滚到之前的版本时,Capistrno 会把 current/ 目录的符号链接指向 releases/ 目录中存档之前版本的目录。Capistrano 是一种优雅且简单的部署方案,能让 PHP 应用的部署过程变得简单、可预知和可逆。

一,安装Capistrano

Capistrano 应该安装在本地设备中,别在远程服务器中安装。安装时还需要 ruby 和 gem。OS X 系统已经有了。

Ubuntu 用户可以直接用下面的命令安装:

sudo apt-get install ruby
sudo apt-get install gem

Centos 可以使用

yum install ruby
yum install gem

本文使用windows安装,

1,先安装 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,必须初始化项目。打开终端,进入项目的根目录,执行下面的命令:比如在:D:/basic,运行下面命令生成 Capistrano 的配置文件:

cap install

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

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

注意如果项目下已存在config目录和lib目录会被合并。

Capfile 是 Capistrano 的中央配置文件,会聚合 config/ 目录中的配置文件。 config/ 目录中存放的是各个远程服务器环境(例如,测试环境、过渡环境或生产环境)的配置文件。

默认情况下,Capistrano 假设你为应用搭建了多个环境。例如,可能有单独的过渡环境和生产环境。Capistrano 在 config/deploy/ 目录中为每个环境都提供了单独的配置文件。Capistrano 还提供了 config/deploy.rb 配置文件,这个文件用于保存所有环境通用的设置。

在每个环境中,Capistrano 会区分服务器的角色。例如,生产环境可能有前置 Web 服务器(web角色),应用服务器(app角色)和数据库服务器(db角色)。只有最大规模的应用才有必要使用这种架构,小型 PHP 应用一般在同一台设备中运行 Web 服务器(nginx)、应用服务器(PHP-FPM)和数据库服务器(MariaDB)。

这篇文章的例子中,我使用的是 web 角色,和生产环境的配置。

 4,对于一般应用来说web服务只有一台服务器,有多台的情况一般也会有主从复制架构,所以本文按照单独服务器设置通用配置。

说明下config/deploy.rb文件

这个配置文件包含所有环境通用的配置。打开这个文件,然后更新下列设置:

  • :application 这是 PHP 应用的名称。只能包含字母、数字和下划线。
  • :repo_url 这是Git仓库的URL。这个URL必须指向一个Git仓库,而且远程服务器必须能访问这个仓库。
  • :reploy_to 这是远程服务器中一个目录的绝对路径,我们不熟的PHP应用就存放在这个目录中,此时,该路径为:/home/deploy/apps/my_app
  • :keep_releases 保留多少个旧版,以便于应用的版本回滚。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值