是否有ssh和scp任务可用于phing?

时间:2008-10-23 10:08:06

标签: php deployment phing

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

我还需要在phing构建文件中执行ssh(以及scp)任务的其他选择吗?

7 个答案:

答案 0 :(得分:15)

Phing中的

SCPTask

  

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

答案 1 :(得分:9)

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

答案 2 :(得分:5)

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

<exec command="scp -i keys/id_rsa myfile user@$server:myfile" dir="." />

答案 3 :(得分:2)

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

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

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

答案 4 :(得分:1)

对于SemanticScuttle,我们使用rsync to deploy版本文件到SourceForge服务器 - 也通过exec。 Rsync理解ssh。

答案 5 :(得分:0)

对于ssh,有ssh2 PECL扩展,然后Phing有sshscp任务。

  1. 在Mac上,通过Homebrew安装libssh2。在Linux上,使用您的包管理器。
  2. sudo pecl install pecl.php.net/ssh2-0.12
  3. 您现在可以执行此操作:

    <?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>
    

答案 6 :(得分:-2)

如果你真的需要phing,那么afaik只有exec。如果您对其他工具持开放态度,请查看capistrano以及“Setting up a PHP web project, the infrastructure.”中的答案。