Drupal Installationen mit Drush aus der Kommandozeile (Terminal, CLI, Konsole) pflegen

Für jeden der mit Drupal regelmäßiger arbeitet, dürfte es eine wahre Erleuchtung sein, wenn er das erste mal Drush in Aktion sieht. Wer nicht weiß was Drush ist der kann sich das folgende Video ansehen, was die Sache sehr amüsant auf den Punkt bringt: "Drush: Mehr Bier, weniger Aufwand"

Drush: More Beer, Less Effort

Ok, dass wir Drush brauchen dürfte jetzt jedem klar sein :)

Es gibt verschiedene Möglichkeiten sich per Kommandozeile mit dem Server zu verbinden. Die einfachste Möglichkeit ist sicher, wenn man auf MacOS einen MAMP Server (kurz für: Mac Apache MySQL PHP) laufen hat. Auf die Installation wird hier nicht näher eingegangen.

Um sich auf einen anderen, nicht lokalen, Server per SSH einzuloggen steht für Mac und Windows jeweils ein Tool zur Verfügung, dass ich empfehlen kann. Bei Mac ist es das mitgelieferte Programm Terminal, unter Windows kann man die Verbindung relativ komfortabel über PUTTY aufbauen.

SSH ist übrigens das "Stichwort". SSH muss dein Account "können" wenn du die Kommandozeile nutzen möchtest. Eine Anleitung wie man sich im Einzelnen auf den Server einloggt wird an dieser Stelle nicht gegeben. Die Stichworte "SSH" und "Terminal" (oder "PUTTY") sollten als Grundlage für eine Suche ausreichen.

Installation von Drush

Drush ist ein Drupal Modul für das es nur eine Version gibt: < href="http://drupal.org/project/drush">project/drush

Das heißt egal welche Version von Drupal du einsetzt du nutzt immer die gleiche Drush Version.

Hier beginnen für den Kommandozeilenneuling allerdings schon die Probleme. Vorausgesetzt die Verbindung hat funktioniert und der rechteckige Cursor ist zu sehen hat man jetzt erstmal folgendes Bild vor sich und versteht nur Bahnhof.

benutzer@server:~$

Wir befinden uns also in irgend einem Verzeichnis auf dem Server. Toll!

Wer nicht weiß wo er jetzt ist und was wget, tar, .bashrc usw. sind, der sollte sich bevoer er hier weiterliest kurz den Kommandozeilen-Crashkurs durchlesen. Ansonsten kann es losgehen.

Wir wechseln in unser Homeverzeichnis falls wir nicht schon dort sind

$ cd ~

Laden Drush direkt in das Verzeichnis

$ wget http://ftp.drupal.org/files/projects/drush-6.x-3.3.tar.gz

Entpacken Drush

$ tar xvfz drush-6.x-3.3.tar.gz

Löschen das tar.gz File (wir sind ordentliche Menschen ;-) )

$ rm drush-6.x-3.3.tar.gz

Und führen den Drush Befehl das erste mal aus

$ drush/drush

Hier sollte eine Übersicht aller möglichen Drush Befehle ausgegeben werden. Falls nicht, kann das an den Berechtigungen liegen. Also geben wir dem Benutzer (u) das Recht zum Ausführen (+x)

$ chmod u+x ~/drush/drush

Und führen den Drush Befehl das erste mal aus

$ drush/drush

Theoretisch sind wir fertig. Wir können nun in ein Drupal Verzeichnis navigieren und Drush benutzen (allerdings empfiehlt es sich einen alias für drush anzulegen, aber dazu mehr bei der Fehlerbehebung im nächsten Schritt)

$ cd pfad/zum/drupalverzeichnis
drupalverzeichnis$ ~/drush/drush pm-list

Wenn alles gut gegangen ist sehen wir nun eine Liste mit allen verfügbaren Modulen unserer Drupal Installation. Falls nicht sehen wir eine Fehlermeldung, z.B.

Your command line PHP installation is too old. Drush requires at least PHP 5.2.0

In diesem Fall müssen wir sicherstellen, dass der Server PHP5 installiert hat und den drush-Befehl über ein Alias mit PHP5 verknüpfen. Hier ein Versuch dies möglichst kurz zu erklären. Also Augen zu und durch.

Wir finden heraus ob und wo PHP5 installiert ist

$ which php5

Dieser Befehl gibt, falls PHP5 vorhanden ist, den entsprechenden Pfad aus, z.B.

/usr/bin/php5

Diesen merken wir uns und wechseln wieder in unser Home Verzeichnis

$ cd ~

Wir öffnen die Datei .bashrc

$ nano .bashrc

Mit dem Cursor oder CTRL+V navigieren wir an das Ende der Datei und geben folgendes ein (Dabei verwenden wir den oben erhaltenen Pfad)

alias drush="/usr/bin/php5 ~/drush/drush.php"

Es kann gut sein, dass diese PHP Instanz nicht für Drupal konfiguriert ist. Falls Fehler auftreten, kann man versuchen PHP über den Alias zu konfigurieren:

alias drush='/usr/bin/php5 -d memory_limit=256M -d max_execution_time=120 -d register_globals=off ~/drush/drush.php'

Und um sicher zu gehen, dass Drush diese Konfigurationen auch übernimmt, wenn PHP von Drush selbst ausgeführt wird, sollte man Drush wiederrum den PHP-Pfad mit der Konfiguration nochmal übergeben.

alias drush='/usr/bin/php5 -d memory_limit=256M -d max_execution_time=120 -d register_globals=off ~/drush/drush.php --php="/usr/bin/php5 -d
memory_limit=256M -d max_execution_time=120 -d register_globals=off"'

Wir schließen und speichern die Datei mit CTRL+X (schließen) und Y (Ja, wir wollen die Änderungen speichern) und bestätigen den Dateinamen einfach mit ENTER.

Nun laden wir die .bashrc Datei neu um die Änderungen und den Alias zu übernehmen

$ . ~/.bashrc

Wenn alles geklappt hat. Sollte nun Drush über die einfache Eingabe von

$ drush

verfügbar sein. Herzlichen Glückwunsch.

Falls nicht, oder falls dieses Kurztutorial nicht hilfreich sein sollte, freue ich mich über Verbesserungsvorschläge und Fragen.

Kommentare

super! danke für das kleine

super! danke für das kleine tut

ich bin noch ziemlich am anfang was drush und überhaupt shell etc angeht..

wenn ich mich mit putty auf mein webspace einlogge bin ich direkt in meinem ftp root www/htdocs/BENUTZER/
per ftp komme ich auch direkt dorthin..

per putty "cd ~" komme ich jetzt auch direkt ins root hab deine anleitung befolgt und drush funktioniert jetzt auch per alias überall...irgendwann glaub nach dem speichern der .bashrc kam eine meldung dass alle dateien ausserhalb meines (oben erwähnten) ordners bei einem server umzug oder neu einrichtung von ssh gelöscht werden

klappt das ganze auch innerhalb meines BENUTZER ordners?
also ich hatte es zuerst dort versucht aber die .bashrc war komplett leer und sämtliche eintragungen haben nix gebracht

hast du da evtl einen tipp für mich?

lg Can

Kommentar verfassen

Der Inhalt dieses Feldes wird nicht öffentlich gezeigt.