我想做從我的生成機遠程部署到服務器上。遠程處理可以通過腳本中的ssh命令完成,但我寧願使用phing和一個可以執行自動化的deploy.xml文件。是否有可用於phing的ssh和scp任務?
還有什麼替代方法可以在phing構建文件中執行ssh(也包括scp)任務?
我想做從我的生成機遠程部署到服務器上。遠程處理可以通過腳本中的ssh命令完成,但我寧願使用phing和一個可以執行自動化的deploy.xml文件。是否有可用於phing的ssh和scp任務?
還有什麼替代方法可以在phing構建文件中執行ssh(也包括scp)任務?
如果你確實需要phing,那麼afaik只有exec。如果您打開其他工具,請查看capistrano並在「Setting up a PHP web project, the infrastructure.」中回答。
大約一年前我遇到了同樣的問題,當時我找不到任務。我最終做了一個exec任務,這樣它就全部在xml文件中。
<exec command="scp -i keys/id_rsa myfile [email protected]$server:myfile" dir="." />
昨天我碰到了Phing的SCP and SSH tasks。您還需要遵循installing SSH2 for PHP的說明。我可能無法將這些任務直接用於開箱即用。我修改了我的副本,如果需要我可以提供。
在Phing SCPTask:
將文件複製到和使用scp遠程主機。此任務需要PHP SSH2 extension到功能...
對於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>
謝謝...我過去使用Capistrano的,我很高興。但是,這意味着您的團隊現在需要了解2種語言(PHP和一些Ruby)。我寧願去尋求解決方案,但我們都必須務實...... – Johan 2008-10-23 20:48:36
這是一個真正的關注點。然而,一個好的程序員將學會在不到一天的時間內處理一個capistrano makefile。相信我。例如,我通常不會做任何Ruby,而且我已經在不到八個小時的時間內用命名空間編寫任務。 capistrano的文檔非常棒。 – Till 2008-10-23 22:38:05