是否有可用于 phing 的 ssh 和 scp 任务?
Posted
技术标签:
【中文标题】是否有可用于 phing 的 ssh 和 scp 任务?【英文标题】:Are there ssh and scp tasks available for phing? 【发布时间】:2008-10-23 10:08:05 【问题描述】:我想从我的构建机器远程部署到服务器上。远程处理可以通过脚本中的 ssh 命令来完成,但我更愿意使用 phing 和可以执行自动化操作的 deploy.xml 文件。
我必须从 phing 构建文件中执行 ssh(以及 scp)任务的替代方法是什么?
【问题讨论】:
【参考方案1】:SCPTask 在 Phing:
使用 scp 将文件复制到远程主机或从远程主机复制文件。此任务需要 PHP SSH2 extension 才能运行...
【讨论】:
【参考方案2】:我昨天遇到了一个 SCP and SSH tasks 的 Phing。您还需要按照installing SSH2 for php 的说明进行操作。我无法让任务直接开箱即用,你可能会。我修改了我的副本,如果你需要我可以提供。
【讨论】:
如果您使用 WAMP,您只需左键单击 WAMP 图标,转到 PHP -> PHP Extensions,然后启用 php_ss2。【参考方案3】:大约一年前我遇到了同样的问题,那时我找不到任务。我最终做了一个 exec 任务,这样它就在 xml 文件中。
<exec command="scp -i keys/id_rsa myfile user@$server:myfile" dir="." />
【讨论】:
【参考方案4】:我知道这是旧的,但似乎有多个断开的链接和一些错误信息。
ScpTask: http://www.phing.info/docs/guide/stable/apcs60.html
SshTask: http://www.phing.info/docs/guide/stable/apcs60.htm
【讨论】:
【参考方案5】:对于SemanticScuttle,我们使用rsync to deploy 向SourceForge 服务器发布文件- 也通过exec。 rsync 理解 ssh。
【讨论】:
【参考方案6】:对于 ssh,有 ssh2 PECL 扩展,然后 Phing 有 ssh 和 scp 任务。
-
在 Mac 上,通过 Homebrew 安装 libssh2。在 Linux 上,使用您的包管理器。
sudo pecl install pecl.php.net/ssh2-0.12
您现在可以这样做了:
<?xml version="1.0"?>
<project name="test" default="test">
<target name="test">
<ssh username="vagrant" password="vagrant" host="192.168.123.456"
command="pwd" property="pwd" display="false" />
<echo>The current working directory is $pwd</echo>
</target>
</project>
【讨论】:
【参考方案7】:如果您真的需要 phing,那么 afaik 只有 exec。如果您愿意使用其他工具,请查看capistrano 和我在“Setting up a PHP web project, the infrastructure.”中的回答。
【讨论】:
谢谢...我过去使用过 capistrano,对此我很满意。但是,这意味着您的团队现在需要了解 2 种语言(PHP 和一点 Ruby)。我宁愿选择一种解决方案,但我们都必须务实...... 这是一个真正的问题。然而,一个优秀的程序员将在不到一天的时间内学会处理 capistrano makefile。相信我。例如,我通常不使用任何 Ruby,并且我在不到八小时的时间内就使用名称空间编写了任务。 capistrano 的文档非常棒。 您没有回答使用 Phing 任务进行公钥身份验证的问题。 @业余咖啡师:嗯,首先,我回答总是有<exec />
。然后,我提供了一个开箱即用的替代方案。您也可以通过 capistrano 运行 phing 任务。以上是关于是否有可用于 phing 的 ssh 和 scp 任务?的主要内容,如果未能解决你的问题,请参考以下文章