royopa / phploy
PHPloy - 支持子模块、多个服务器和回滚的增量 Git (S)FTP 部署工具。
Requires
- banago/bridge: dev-master
- jakeasmith/http_build_url: dev-master
This package is auto-updated.
Last update: 2024-08-29 03:47:22 UTC
README
版本 3.0.16-stable
PHPloy 是一个增量 Git FTP 和 SFTP 部署工具。通过跟踪远程服务器(们)的状态,它只部署自上次部署以来提交的文件。PHPloy 支持子模块、子子模块、部署到多个服务器和回滚。
要求
- PHP 5.3+ 命令行解释器 (CLI)
Windows 用户可以选择 下载 AnsiCon 以在命令提示符中显示颜色。通过在命令提示符或 "运行" 窗口中运行 ansicon -i
来安装它。
安装和使用
该包可在 Composer 上获得。
如果您使用 Composer 来管理依赖项,可以使用
composer require "royopa/phploy"
或者
与任何脚本一样,您可以从 bin
目录全局使用 PHPloy,或从项目目录本地使用
在本地使用 PHPloy(按项目)
- 将
phploy.phar
放入您的项目中。 - 创建
deploy.ini
文件。 - 在终端中运行
php phploy.phar
。
在 Linux 中全局使用 PHPloy
- 将
phploy.phar
放入/usr/local/bin
并通过运行sudo chmod +x phploy
使其可执行。 - 在您的项目文件夹内创建
deploy.ini
文件。 - 在终端中运行
phploy
。
在 Windows 中全局安装 PHPloy
- 将 PHPloy 文件提取或克隆到您选择的文件夹中
- 确保 phploy.bat 可以找到 php.exe 的路径,方法如下:
- 将 php.exe 的路径添加到系统路径
- 手动将路径添加到 phploy.bat 内
- 将 phploy 文件夹添加到系统路径
- 从命令提示符(从您的仓库文件夹)运行
phploy
。
将文件夹添加到您的 系统路径 意味着您可以从任何文件夹中执行应用程序,而无需指定其完整路径。要添加文件夹到您的系统路径:
- 按 WINDOWS + PAUSE 打开控制面板 > 系统屏幕
- 单击 "高级系统设置"
- 单击 "环境变量"
- 在 "系统变量" 下,应该有一个名为 "Path" 的变量。选择此变量并单击 "编辑"。
- 保留现有的路径,在末尾添加一个分号
;
,然后输入适当文件夹的位置。空格是可以的,不需要引号。 - 单击确定
deploy.ini
该 deploy.ini
文件包含您的凭据,并且它必须在项目的根目录中。使用您需要的任意数量的服务器和您偏好的任意配置类型。
; This is a sample deploy.ini file. You can specify as many ; servers as you need and use normal or quickmode configuration. ; ; NOTE: If a value in the .ini file contains any non-alphanumeric ; characters it needs to be enclosed in double-quotes ("). [staging] scheme = sftp user = example pass = password host = staging-example.com path = /path/to/installation port = 22 passive = true ; Files that should be ignored and not uploaded to your server, ; but still tracked in your repository skip[] = 'src/*.scss' skip[] = '*.ini' [production] quickmode = ftp://example:password@production-example.com:21/path/to/installation passive = true ; Files that should be ignored and not uploaded to your server, ; but still tracked in your repository skip[] = 'libs/*' skip[] = 'config/*' skip[] = 'src/*.scss'
如果您的密码在 deploy.ini
文件中缺失,PHPloy 将交互式地要求您输入密码。
第一次执行时,PHPloy 将假设您的部署服务器是空的,并将上传您的项目中的所有文件。如果远程服务器已经包含文件的副本,您可以使用 --sync
命令(见下文)指定它所在的版本。
多个服务器
PHPloy 允许您在部署文件中配置多个服务器,并且可以轻松地将文件部署到任意一个服务器。
默认情况下,PHPloy 将部署到所有指定的服务器。如果您的服务器配置中存在名为 'default' 的条目,PHPloy 将默认使用该服务器配置。要指定单个服务器,请运行
phploy -s servername
或者
phploy --server servername
servername
是您在 deploy.ini
配置文件中为服务器指定的名称。
如果您已配置“默认”服务器,可以通过运行以下命令来指定部署到所有配置的服务器:
phploy --all
回滚
警告:目前--rollback选项不能正确更新您的子模块。在解决这个问题之前,我们建议您检出您想要部署的修订版,更新您的子模块,然后再运行phploy。
PHPloy允许您在需要时回滚到早期版本。回滚操作非常简单。
要回滚到上一个提交,只需运行:
phploy --rollback
要回滚到您想要的任何提交,运行:
phploy --rollback="commit-hash-goes-here"
当您运行回滚时,您的工作副本中的文件将临时回滚到您正在部署的回滚版本。当部署完成后,一切将恢复原状。
注意,没有--rollback
的简写版本。
列出已更改的文件
PHPloy允许您在实际上传/删除之前查看将要上传/删除的文件。只需运行:
phploy -l
或者
phploy --list
上传其他文件
要上传所有文件,即使是不由git跟踪的文件(例如,Composer的vendor目录),运行:
phploy -o
或者
phploy --others
请注意,除了在deploy.ini中排除的文件外,所有文件都将被上传。
更新或“同步”远程修订版
如果您想更新服务器上的.revision
文件以匹配您的当前本地修订版,运行:
phploy --sync
如果您想将其设置为以前的提交修订版,只需指定修订版如下:
phploy --sync="your-revision-hash-here"
子模块
子模块受支持,但默认情况下是关闭的,因为您不期望它们经常更改,并且您只是偶尔更新它们。要运行带有子模块扫描的部署,请将--submodules
参数添加到命令中。
phploy --submodules
清除
在许多情况下,我们需要在部署后清除目录的内容。这可以通过在deploy.ini
中指定目录来实现,如下所示:
; relative to the deployment path
purge[] = "cache/"
; absolute path
purge[] = "/public_html/wp-content/themes/base/cache/"
工作原理
PHPloy在您的服务器上存储一个名为.revision
的文件。该文件包含您已部署到服务器的提交的哈希值。当您运行phploy时,它将下载该文件,并比较其中包含的提交引用与您尝试部署的提交,以确定要上传的文件。
PHPloy还为您的存储库中的每个子模块存储一个.revision
文件。
贡献
如果您对PHPloy有任何建议、问题或其他事项,请在此创建问题。
鸣谢
将PHPloy带给您的人们有:
- Baki Goxhaj - 首席开发者
- Bruno De Barros - 初始灵感
- Fadion Dashi - 贡献者
- Simon East - 贡献者,Windows支持
- Mark Beech - 贡献者
- Guido Hendriks - 贡献者
版本历史
v3.0.0-alpha (2014年8月9日)
- 添加了SFTP支持
- Composer包
- 添加了Phar文件
v2.0.0-beta3 (2014年5月26日)
- 彩色控制台输出现在是可选的,默认情况下在Windows上禁用,除非检测到Ansicon。(可以通过
--no-colors
命令行选项禁用颜色。) - ANSI颜色功能已移至单独的类,并且现在也在GitHub上是一个单独的项目
v2.0.0-beta2 (2014年4月11日)
- 添加了更多ANSI颜色到输出
- 添加了--debug选项,它提供了更详细的输出
- 添加了--help选项,它显示readme.md文件
- 输出现在清楚地指示是否在--list模式下运行
- 上传过程现在显示队列中的文件数(例如,“52个中的1个”)
- 内部:ANSI 颜色现在通过类似 HTML 的简单标签表达,如 ,等。
- 内部:git 和控制台命令现在从中央函数运行,以减少代码重复和潜在的错误。
- 虚构:现在 phploy 可以在长时间部署期间为你制作咖啡。
v2.0.0-beta(2014 年 4 月)
- 通过
- 移除不兼容的 UTF 字符来添加对 Windows 机器的支持。
- 添加了 phploy.bat
- 添加了一些额外的控制台输出,并对一些输出的字符串进行了格式化,以提高可读性。
- 添加了命令行选项 --skip-subsubmodules