Deployer 部署

Deployer 是部署任何 PHP 应用,包括框架,如 Laravel,Symfony,Zend Framework 的 CLI 工具。

特性

  • 设置过程简单,学习曲线最少
  • 准备用于大多数框架的配方
  • 没有扩展的并行执行
  • 出了些问题?回滚到以前的版本
  • 无代理,只是 SSH
  • 零停机时间部署

安装

Composer

安装

1
2
composer global require deployer/deployer
# composer require deployer/deployer

使用

1
2
dep
# php vendor/bin/dep

Phar archive

1
curl -LO https://deployer.org/deployer.phar

Linux,Macos

1
2
mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep

Windows
新建dep.batdeployer.phar放在同一目录,写入内容:

1
@php "%~dp0deployer.phar" %*

当然路径必须添加在环境变量Path变量下。

部署

服务端

创建用户

1
2
3
4
5
$ sudo adduser --disabled-password --gecos 'Deployer' deployer www-data
$ sudo usermod -aG www-data deployer
$ sudo chfn -o umask=022 deployer
$ sudo chown deployer:www-data /var/www/html #目录改为web所在目录
$ sudo chmod g+s /var/www/html

创建 SSH 密钥

1
2
$ su - deployer
$ ssh-keygen -t rsa -b 4096 -C "deployer"

远程仓库添加部署公钥

1
2
$ su - deployer
$ cat ~/.ssh/id_rsa.pub

本地免密码登录

复制本地用户的id_ras.pub,

1
2
$ su - deployer
$ vi ~/.ssh/authorized_keys

将刚才复制的公钥粘贴到编辑器 ESC 然后 :wq保存

NGINX

修改原网站配置文件的root
如果项目框架为CodeIgniter

1
2
3
4
5
6
server {
.....
# root /var/www/web/;
root /var/www/web/current;
...
}

如果项目框架为Laravel

1
2
3
4
5
6
server {
.....
# root /var/www/web/public;
root /var/www/web/current/public;
...
}