题
我想从构建计算机远程部署到服务器上。远程处理可以通过脚本中的ssh命令完成,但我宁愿使用phing和deploy.xml文件进行自动化。
我还需要在phing构建文件中执行ssh(以及scp)任务的其他选择吗?
解决方案
如果你真的需要phing,那么afaik只有exec。如果您对其他工具持开放态度,请查看 capistrano ,并在“设置PHP Web项目,即基础架构。“。
其他提示
在Phing中 SCPTask :
使用scp将文件复制到远程主机或从远程主机复制文件。此任务需要 PHP SSH2扩展 正常运作......
我遇到了 SCP和SSH任务昨天为Phing。您还需要按照安装SSH2 for PHP 的说明进行操作。你可能,我无法让任务直接开箱即用。我修改了我的副本,如果你需要我可以提供。
我在一年前遇到了同样的问题,当时我找不到任务。我最终做了一个exec任务,这样就完全在xml文件中了。
<exec command="scp -i keys/id_rsa myfile user@$server:myfile" dir="." />
我知道这是旧的,但似乎有多个断开的链接和一些错误的信息。
对于 SemanticScuttle ,我们使用 rsync要部署发布文件到SourceForge服务器 - 也通过exec 。 Rsync理解ssh。
对于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>
不隶属于 StackOverflow