6

我想从我的构建机器远程部署到服务器上。远程处理可以通过脚本中的 ssh 命令来完成,但我宁愿使用 phing 和可以执行自动化的 deploy.xml 文件。

我必须从 phing 构建文件中执行 ssh(以及 scp)任务的替代方法是什么?

4

7 回答 7

15

Phing 中的SCPTask

使用 scp 将文件复制到远程主机或从远程主机复制文件。此任务需要PHP SSH2 扩展才能运行...

于 2010-12-15T11:37:13.297 回答
9

我昨天遇到了Phing 的SCP 和 SSH 任务。您还需要按照安装 SSH2 for PHP的说明进行操作。我无法让任务直接开箱即用,你可能会。我修改了我的副本,如果你需要我可以提供。

于 2009-01-28T21:25:15.923 回答
5

大约一年前我遇到了同样的问题,那时我找不到任务。我最终做了一个 exec 任务,这样它就在 xml 文件中。

<exec command="scp -i keys/id_rsa myfile user@$server:myfile" dir="." />
于 2008-10-23T11:23:06.570 回答
2

我知道这很旧,但似乎有多个断开的链接和一些错误信息。

ScpTask:http: //www.phing.info/docs/guide/stable/apcs60.html

SshTask: http://www.phing.info/docs/guide/stable/apcs60.htm

于 2014-02-03T20:50:41.987 回答
1

对于SemanticScuttle,我们使用rsync 将发布文件部署到 SourceForge 服务器 - 也通过 exec。Rsync 理解 ssh。

于 2011-06-12T18:13:19.290 回答
0

For ssh, there's the ssh2 PECL extension and then Phing has the ssh and scp tasks.

  1. On a Mac, install libssh2 via Homebrew. On Linux, use your package manager.
  2. sudo pecl install pecl.php.net/ssh2-0.12

You can now do this:

<?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>
于 2014-11-17T10:58:26.603 回答
-2

如果你真的需要 phing,那么 afaik 只有 exec。如果您愿意使用其他工具,请查看capistrano和我在“设置 PHP Web 项目,基础设施”中的回答。

于 2008-10-23T12:52:01.493 回答