2008-10-23 2 views
5

Ich möchte Remote-Bereitstellung von meinem Build-Rechner auf einen Server durchführen. Das Remoting kann über ssh-Befehle aus einem Skript erfolgen, aber ich würde lieber phing und eine deploy.xml-Datei verwenden, die die Automatisierung übernehmen würde.Gibt es SSH- und SCP-Aufgaben für das Phing?

Welche Alternativen muss ich ssh (und auch scp) Aufgaben aus einer Phing-Build-Datei zu tun?

Antwort

-2

Wenn Sie wirklich brauchen, Phing, dann afaik gibt es nur exec. Wenn Sie für andere Werkzeuge offen sind, werfen Sie einen Blick auf capistrano und meine Antwort in "Setting up a PHP web project, the infrastructure.".

+0

Danke ... habe ich Capistrano in der Vergangenheit und ich bin glücklich mit ihm. Es bedeutet jedoch, dass Ihr Team jetzt zwei Sprachen (PHP und ein bisschen Ruby) verstehen muss. Ich würde lieber eine Lösung wählen, aber wir alle müssen pragmatisch sein ... – Johan

+0

Das ist eine echte Sorge. Ein guter Programmierer wird jedoch lernen, in weniger als einem Tag mit einem Capistrano-Makefile fertig zu werden. Vertrau mir. Zum Beispiel mache ich normalerweise keinen Ruby und habe Aufgaben mit Namespaces in weniger als acht Stunden programmiert. Die Docs für Capistrano sind ziemlich beeindruckend. – Till

+2

Sie beantworten nicht die Frage, die Public-Key-Authentifizierung mit Phing-Aufgaben zu tun ist. –

5

Ich stieß vor ungefähr einem Jahr auf das gleiche Problem und damals konnte ich keine Aufgabe finden. Am Ende habe ich eine Exec-Aufgabe gemacht, so war alles in der XML-Datei.

<exec command="scp -i keys/id_rsa myfile [email protected]$server:myfile" dir="." /> 
9

Ich stieß gestern auf eine SCP and SSH tasks für Phing. Sie müssen auch den Anweisungen für installing SSH2 for PHP folgen. Ich war nicht in der Lage, die Aufgaben direkt aus der Box zu erledigen. Ich habe meine Kopie geändert, wenn Sie brauchen, kann ich zur Verfügung stellen.

+0

Wenn Sie WAMP verwenden, müssen Sie nur mit der linken Maustaste auf das WAMP-Symbol klicken, zu PHP -> PHP-Erweiterungen gehen und dann php_ss2 aktivieren. –

0

Für ssh, gibt es die ssh2 PECL-Erweiterung und dann hat Phing die ssh und scp Aufgaben.

  1. Auf einem Mac libssh2 über Homebrew installieren. Unter Linux verwenden Sie Ihren Paketmanager.
  2. sudo pecl install pecl.php.net/ssh2-0.12

Sie können dies jetzt tun:

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