【发布时间】:2011-06-07 16:10:07
【问题描述】:
我很乐意为我的 Python 项目使用 Fabric 进行部署。现在我正在从事一个更大的 PHP 项目,想知道 PHP 是否有类似 fabric 的东西?
【问题讨论】:
-
您可能想查看有关 PHP 自动部署的这个问题:stackoverflow.com/questions/425692/…
我很乐意为我的 Python 项目使用 Fabric 进行部署。现在我正在从事一个更大的 PHP 项目,想知道 PHP 是否有类似 fabric 的东西?
【问题讨论】:
现在我们有了 Deployer for PHP,用 php 实现,不需要特殊的 ext,安装是下载一个 deployer.phar,有流行框架的部署模板。 https://deployer.org/
【讨论】:
Laravel(一个非常流行且相对年轻的框架)有Envoy。
【讨论】:
是的,你可以使用mysqlnd_ms
mysqlnd 复制和负载平衡插件 (mysqlnd_ms) 为所有使用 mysqlnd 的 PHP MySQL 扩展添加了易于使用的 MySQL 复制支持。
从 PHP 5.3.3 版本开始,PHP 的 MySQL 本机驱动程序 (mysqlnd) 具有内部插件 C API。 C插件,例如复制和负载均衡插件,可以扩展mysqlnd的功能。
PHP 的 MySQL 本机驱动程序是一个 C 库,自 PHP 5.3.0 起随 PHP 一起提供。它充当 MySQL 客户端库 (libmysqlclient) 的替代品。使用 mysqlnd 有几个优点:不需要额外下载,因为它与 PHP 捆绑在一起,它在 PHP 许可下,在某些情况下内存消耗较低,并且它包含异步查询等新功能。
像 mysqlnd_ms 这样的 Mysqlnd 插件在很大程度上是从用户的角度透明地运行的。复制和负载平衡插件支持所有 PHP 应用程序和所有 MySQL PHP 扩展。它不会更改现有的 API。因此,它可以很容易地与现有的 PHP 应用程序一起使用。
【讨论】:
Rasmus Lerdorf 发布了一种用于 PHP 的 Capistrano:WePloy。
也许它会满足你的需要
【讨论】:
Host::exec 方法作为示例代码看起来很有用。
如果您正在寻找构建工具(而不是部署),您可以使用 Phing (http://phing.info/),它是 Java 的 Ant 的 PHP 等效项。
不处理隧道(运行远程命令等),但在将您的部署分解为具有链式依赖关系的任务方面做得很好,并且 PHP 可以轻松地与您的 PHP 库交互。您可能会发现一些简单的 cap 或 fabfiles 用于实际部署,然后可以调用 Phing 脚本来处理部署后配置。
【讨论】:
嗯?为什么这有关系? Fabric 只是 python 脚本。所以它与项目语言无关。您可以使用它将任何东西放在您将使用 scp 的服务器上,也可以通过 ssh 编写任何脚本,您将使用 bash 或 [在此处插入其他工具]。 Fabric 真的不是 Python 的 capistrano。它更类似于 cap 和 rake 的结合,尽管我仍然认为这是对织物进行分类的能力。
我确实喜欢一站式配方位,并且(从第一眼看)weploy 为您提供项目,就像在织物中一样,除非您使用编织之类的东西,否则您将自己滚动。但是面料的定制能力对我来说是一个加分项,因为我到处都在使用它。
【讨论】: