PHPStorm 8, Drupal 8, Drush, XDebug
am 05.02.2015 - 16:49 Uhr in
Hallo,
ich habe PHPStorm 8 lokal auf meinem Win 8 Rechner installiert und greife per remote auf meinen managed server (DomainFactory) zu. Für Drupal 7 habe ich es damals irgendwie geschafft Drush auf dem remote server zu installieren. Nun möchte ich gerne die PHPStorm 8 features nutzen um möglichst produktiv mit Drupal 8 für die Entwicklung eines Modules arbeiten zu können. In PHPStorm 8 kann ich schon per SSH auf meinen remote Linux Server zugreifen (also über die Konsole). Das hat bei mir Putty ersetzt. Für mein lokales Drupal Projekt habe ich auch folgende Einstellung in PHPStorm übernommen:
::Settings->Languages & Frameworks->Drupal
Enable Drupal integration (yes)
Wie richte ich nun Drush und xDebug richtig ein? Funktioniert das überhaupt, wenn ich lokal die Dateien editiere und auf den remote server schicke?
Besteht die Möglichkeit die ModulName.install eines Modules auf Fehler prüfen zu lassen? Ich habe dort ein zunächst funktionierendes hook_schema angelegt, welches bei meiner weiteren Arbeit dann jedoch das Modul etwas zerschossen hat. Kann das Modul nicht mehr deinstallieren, daher Drush (bzw. Drush wird eh benötigt).
Wäre für jede Hilfe dankbar.
- Anmelden oder Registrieren um Kommentare zu schreiben
Die Drush Anleitung habe ich
am 05.02.2015 - 17:00 Uhr
Die Drush Anleitung habe ich gefunden: https://confluence.jetbrains.com/display/PhpStorm/Drupal+Development+usi...
Aber diese Anleitung bezieht sich doch auf eine lokale Installation, oder? Oder kann ich Drush lokal installieren und dann auf den remote Linux Server damit zugreifen?
Unbedingt drush auch lokal
am 06.02.2015 - 10:25 Uhr
Du kannst (und solltest) Dir drush lokal installieren und mit Site-aliases arbeiten. Du kannst site-aliases erstellen, die auf den remote Server verweisen. Drush nutzt dabei ssh, um mit dem Server zu kommunizieren. Davon merkst Du praktissch nix (außer wenn es schief geht. ;-).
Rufe mal
drush topic docs-aliases
auf, da bekommst Du ausreichend Doku zu site-aliases.Es ist auch sinnvoll, in
~/.ssh/config
einen ssh-Alias mit Username, Server und ggf. Port zu definieren. Dann brauchst Du im Drush site-alias nur den "remote-host" angeben.PS: Außerdem würde ich Dir empfehlen, die Website lokal auf Deinem Rechner zu entwickeln und dann die Ergebnisse auf den Server zu übertragen (in Drupal 7 z.B. mit "drush rsync" und "drush sql-sync", siehe auch http://niebegeg.net/post/32004170783/aktive-drupal-website-auf-den-pc-sp...).
In Drupal 8 geht das aber noch viel einfacher, da die Konfiguration nicht mehr in der DB, sondern in Dateien verwaltet wird. Diese Dateien kannst Du mit git einchecken und auf dem Server auschecken. Aber das ist schon wieder ein anderes Thema...
Viele Grüße, Dirk
---
niebegeg.net - my adventures in "coding country".
Danke. Ich werde nun deinem
am 06.02.2015 - 14:39 Uhr
Danke. Ich werde nun deinem Ratschlag folgen und alles lokal einrichten. Xampp wird lokal installiert und es wird auch lokal mit PHPStorm8 entwickelt. Ein Backup erstelle ich per Software Sync auf weiteren Festplatten. Bin grad dabei alles einzurichten. Sicher taucht noch die ein oder andere Frage dabei auf.
Hier die erste: Kann ich einfach den gesamten XAMPP Ordner auf meine Backup Platte spiegeln? Sind dann auch die MySQL Datenbanken als Backup vorhanden? Soweit ich weiss, kann ich diese dann nur auf die selbe xampp Version wieder rüber kopieren, sollte mit die Systemplatte mal abrauchen. Ein manueller Dump der DB ist mir zu umständlich.
Drush macht noch Probleme
am 06.02.2015 - 19:57 Uhr
Also, ich habe nun lokal auf meinem Win8 Rechner:
1) XAMPP
2) PHPStorm 8 (mit Unterstützung für: Drupal 8 / XDebug / Drush 7)
Mein PHPStorm Projekt liegt unter:
- C:\xampp\htdocs\websites
Hier finden sich z.B.:
- C:\xampp\htdocs\websites\eine-Drupal-7-Installation
- C:\xampp\htdocs\websites\eine-Drupal-8-Installation
- C:\xampp\htdocs\websites\eine-Wordpress-4-Installation
Drush 7 wurde in folgendem Verzeichnis entpackt und anschließend in PHPStorm 8 eingebunden:
- C:\xampp\htdocs\websites\tools
Nun kann ich in PHPStorm über "Tools->Run Command" gehen und Drush Kommandos eingeben. Gebe ich z.B. "drush cc" ein, dann scheint das zu funktionieren. Auch "drush help" funktioniert, und ich erhalte eine Liste der zur Verfügung stehenden Drush Kommandos. Möchte ich ein Modul deintallieren "pm-unistall modulName", dann erhalte ich folgenden Fehler:
"Cannot run program "pm-unistall" (in directory "C:\xampp\htdocs\websites"): CreateProcess error=2, Das System kann die angegebene Datei nicht finden"
Klar, ich befinde mich nicht im Verzeichnis der Module, aber was mache ich falsch. Navigieren in den Ordnern scheint nicht so wie bei einer SSH Verbindung zu funktionieren. Ist wohl nur für die Eingabe von Kommandos gedacht.
Wenn Du nicht auf Xampp
am 06.02.2015 - 21:26 Uhr
Wenn Du nicht auf Xampp festgelegt bist, dann ist "Aqcuia DevDesktop" wohl der tolle Tipp, um eine lokale Entwicklungsumgebung einzurichten. Es ist wie ein Xampp mit Drupal-Spezialisierung. Es wird einfacher, neue Drupal-Installationen einzurichten (https://www.acquia.com/products-services/dev-desktop).
Die Datenbank kannst Du nicht sinnvoll durch Kopieren der binären Datenbank-Dateien sichern. Du weisst nie, in welchem Zustand die einzelnen Dataein zum Zeitpunkt der Kopie waren. Auch bekommst Du die Datenbank aus den Datenbankdateien nicht sicher wieder hergestellt. Der gute Weg ist es, mit mysqldump einen Dump in eine reine Textdatei der Datenbank herzustellen. Besser ist jedoch das Modul backup_migrate. Es sichert zeitgesteuert (=cron) oder durch manuellen Auftrag die Datenbank und lässt auf Wunsch dabei noch den Inhalt der Cache- und Session-Tabellen weg. Ausserdem hat es Drush-Unterstützung:
drush @site-alias bb
speichert den Dump im Ordner für private Dateien Deiner Drupal-Installation. Und damit ist es auch im File-Backup Deines Rechners.Viele Grüße, Dirk
---
niebegeg.net - my adventures in "coding country".
DrupalRox schrieb Nun kann
am 06.02.2015 - 21:30 Uhr
Nun kann ich in PHPStorm über "Tools->Run Command" gehen und Drush Kommandos eingeben. Gebe ich z.B. "drush cc" ein, dann scheint das zu funktionieren. Auch "drush help" funktioniert, und ich erhalte eine Liste der zur Verfügung stehenden Drush Kommandos. Möchte ich ein Modul deintallieren "pm-unistall modulName", dann erhalte ich folgenden Fehler:
"Cannot run program "pm-unistall" (in directory "C:\xampp\htdocs\websites"): CreateProcess error=2, Das System kann die angegebene Datei nicht finden"
Klar, ich befinde mich nicht im Verzeichnis der Module, aber was mache ich falsch. Navigieren in den Ordnern scheint nicht so wie bei einer SSH Verbindung zu funktionieren. Ist wohl nur für die Eingabe von Kommandos gedacht.
Ich habe kein Windows (und das war noch nie anders ;), aber führe Drush mit den Optionen "-v" (verbose) oder "-d" (debug) aus, dann siehst Du ganz gut, was "im Hintergrund" passiert.
Viele Grüße, Dirk
---
niebegeg.net - my adventures in "coding country".
Danke für deine
am 07.02.2015 - 10:35 Uhr
Danke für deine Antworten...
Ich habe drush nun hier hin kopiert: C:\xampp\htdocs\websites\meine-Drupal8-installation\core\vendor\bin
Nun erhalte ich bei z.B. "drush cc" auch viel mehr Auswahlmöglichkeiten.
Des weiteren habe ich in PHPStorm8 ein neues "Drupal8 Modul Projekt" angelegt und als Pfad eben "C:\xampp\htdocs\websites\meine-Drupal8-installation\modul\mein-modul" genommen. Jetzt wird alles eingebunden und gefunden.
Sehr gut! Nur eines ist noch
am 07.02.2015 - 20:12 Uhr
Sehr gut!
Nur eines ist noch zu ändern: Eigene Module kommen nach
sites/all/modules/
, nicht nachmodules/
. Der Ordnermodules/
wird bei Updates (gerade beim Updates mittels drush) komplett überschrieben.Viele Grüße, Dirk
---
niebegeg.net - my adventures in "coding country".
Danke. Ich entwickel auf
am 07.02.2015 - 20:19 Uhr
Danke. Ich entwickel auf Drupal 8. Da hat man es endlich geschafft weniger Verwirrung zu stiften und der root Ordner "module" ist auch wirklich für Module.
Hier ein tolles Video für die Einrichtung von PHPStorm 8 mit Drupal 8: https://www.youtube.com/watch?v=pe9mXROP8Rw