经常部署 PHP
项目,会把代码传到多台服务器上,平时用 FTP
进行上传,一方面由于上传的人为操作,非常的麻烦,
有时还会出现几台服务器代码不同步的现象。这时就迫切的需要一个管理项目上线部署的工具,恰好在网上搜到了 deployer
,
就试用了一下,感觉还不错,将使用过程做下记录。
安装
首先是现在安装 deployer
地址1
2mv deployer.phar /usr/local/bin/deployer
chmod +x /usr/local/bin/deployer
安装完毕之后,在需要部署的目录里面生成 deployer.php
部署文件
1 | deployer init // 生成 deployer.php 文件 |
对 deployer.php
文件进行编辑
设置 server
首先是设置部署服务器
1 | server('pro1', 'ip地址/域名', [端口]) |
上面就是服务器的设置,可以设置多台
参数说明:
server
里面可以传递三个参数,第一个是名称,第二个服务器地址,可以是 ip,也可以是域名,第三个参数是端口,可选,默认为 22username
登录服务器使用的用户名password
登录服务器使用的密码
上面服务器是使用用户名和密码认证登录的,也可以使用 ssh
认证的方式进行登录认证
1 | server('pro1', 'ip') |
上面使用当前用户名的 id_rsa
的秘钥进行验证登录,也可以自定义1
2
3// ...
->identityFile('path/to/id_rsa', 'path/to/id_rsa.pub', '生成秘钥时设置的密码')
// ...
设置 task
举个栗子1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17task('dev', function() {
writeln('<info>开始...</info>');
$appFiles = [
'dir1',
'dir2'
];
$deployPath = "/src/path"; // 本地文件目录
$remotePath = "/des/path"; // 服务器目录
foreach ($appFiles as $file)
{
upload($file, "{$remotePath}/{$file}"); // 上传文件
}
writeln('<info>完成.</info>');
});
上面书写了一个 dev
的任务,在命令行执行 deployer dev
就可以进行部署了。
部署完毕之后,可以到服务器进行查看。
但是这个例子会有个局限性,每次部署都是重新上传代码,这样的话,很不人性化,这时可以用到 git
版本管理,配合 git
可以达到目的。
稍微需要注意的是,在部署服务器上面要安装 git
详细配置参考 文档
函数介绍:
- run 运行系统命令,例: run(‘pwd’)
- cd 同系统命令 cd
- upload 上传文件,例: upload(src, des)
- download 下载文件 举例: download(local, remote)
- writeln 输出一行文字信息 举例: writeln(“info”);
其他函数参考 函数
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
End