【问题标题】:Are there ssh and scp tasks available for phing?是否有可用于 phing 的 ssh 和 scp 任务?
【发布时间】:2008-10-23 10:08:05
【问题描述】:

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

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

【问题讨论】:

    标签: php deployment phing


    【解决方案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 有 sshscp 任务。

            1. 在 Mac 上,通过 Homebrew 安装 libssh2。在 Linux 上,使用您的包管理器。
            2. 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 任务。
              猜你喜欢
              • 2011-11-17
              • 2013-03-07
              • 2012-02-19
              • 1970-01-01
              • 1970-01-01
              • 2010-11-02
              • 1970-01-01
              • 2012-10-16
              • 1970-01-01
              相关资源
              最近更新 更多