是否有可用于 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 任务进行公钥身份验证的问题。 @业余咖啡师:嗯,首先,我回答总是有&lt;exec /&gt;。然后,我提供了一个开箱即用的替代方案。您也可以通过 capistrano 运行 phing 任务。

以上是关于是否有可用于 phing 的 ssh 和 scp 任务?的主要内容,如果未能解决你的问题,请参考以下文章

ssh与scp

如何在 Cygwin 上下载 SCP 和 ssh?

ssh服务及scp命令相关知识

79.scp命令

Linux命令之远程拷贝文件scp

#yyds干货盘点#scp 命令