【发布时间】:2008-10-23 10:08:05
【问题描述】:
我想从我的构建机器远程部署到服务器上。远程处理可以通过脚本中的 ssh 命令来完成,但我更愿意使用 phing 和可以执行自动化操作的 deploy.xml 文件。
我必须从 phing 构建文件中执行 ssh(以及 scp)任务的替代方法是什么?
【问题讨论】:
标签: php deployment phing
我想从我的构建机器远程部署到服务器上。远程处理可以通过脚本中的 ssh 命令来完成,但我更愿意使用 phing 和可以执行自动化操作的 deploy.xml 文件。
我必须从 phing 构建文件中执行 ssh(以及 scp)任务的替代方法是什么?
【问题讨论】:
标签: php deployment phing
SCPTask 在 Phing:
使用 scp 将文件复制到远程主机或从远程主机复制文件。此任务需要 PHP SSH2 extension 才能运行...
【讨论】:
我昨天遇到了一个 SCP and SSH tasks 的 Phing。您还需要按照installing SSH2 for PHP 的说明进行操作。我无法让任务直接开箱即用,你可能会。我修改了我的副本,如果你需要我可以提供。
【讨论】:
大约一年前我遇到了同样的问题,那时我找不到任务。我最终做了一个 exec 任务,这样它就在 xml 文件中。
<exec command="scp -i keys/id_rsa myfile user@$server:myfile" dir="." />
【讨论】:
【讨论】:
对于SemanticScuttle,我们使用rsync to deploy 向SourceForge 服务器发布文件- 也通过exec。 rsync 理解 ssh。
【讨论】:
对于 ssh,有 ssh2 PECL 扩展,然后 Phing 有 ssh 和 scp 任务。
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>
【讨论】:
如果您真的需要 phing,那么 afaik 只有 exec。如果您愿意使用其他工具,请查看capistrano 和我在“Setting up a PHP web project, the infrastructure.”中的回答。
【讨论】:
<exec />。然后,我提供了一个开箱即用的替代方案。您也可以通过 capistrano 运行 phing 任务。