Im Artikel Git Repository erstellen und mit den Git Server verbinden, wurde ein lokales Git Repository angelegt, auf den Server kopiert und dann wurden beide verknüpft. In diesem Artikel geht es um die Einrichtung von PhpStorm. Hierbei wird das lokale Git Repository benutzt, dessen Dateien automatisch mit dem Remote Webserver synchronisiert werden sollen um Veränderungen dort testen zu können. Die Einrichtung ist relativ einfach, aber da PhpStorm eine Menge an Einstellungsmöglichkeiten bietet, kann es anfänglich etwas überwältigend sein. Weiß man irgend wann nicht mehr weiter, lohnt sich ein Blick in die Hilfe, die wirklich sehr gut und vor allem vollständig ist. Dort wird soweit mir bekannt auf jede Einstellungsmöglichkeit eingegangen.

Alle Teile dieser Artikel Serie

Neues PhpStorm Projekt erstellen

Als erstes starten wir PhpStorm. Dann erstellen wir ein neues Projekt von existierenden Dateien und geben an das sich unser Webserver auf einem Remote Host befindet.

File -> New Project from Existing Files -> 
My web server is on remote host, files are accessible via FTP/SFTP

Als nächstes gibt man die Zugangsdaten zum Testserver an. In meinem Fall SFTP und die Authentifizierung passiert per Private Key.

PhpStorm Server Settings

Die Testserver Einstellungen sind nicht Projektspezifisch und können wiederverwendet werden. Deshalb wird bei Root Path auch nicht der Projektpfad angegeben, sondern ein etwas allgemeiner Pfad. Auf der nächsten Seite wählt man den root Ordner für sein Projekt auf dem Remote Server aus und wenn nötig kann man noch einen Projekt Web Pfad einstellen. Dann gibt man dem Baby noch einen Namen und gibt den lokalen Projekt Ordner an. Das ist das Verzeichnis mit dem lokalen Git Repository. Beim Remote Ordner sollte man darauf achten das dieser leer ist, da sonst die dort vorhandenen Dateien heruntergeladen und ins Projekt eingegliedert werden, aber vielleicht ist dies auch genau das was man möchte.

Phpstorm Lokaler Pfad

Hat man bei den Deployment Optionen einen Hacken bei Custom gesetzt, kommt man zu dieser Seite. Auf dem Bild sieht man meine Einstellungen.

  • Upload changed files automatically to the default server bewirkt das man sich nicht selbst um die Synchronisierung der Server kümmern muss.
  • Upload external changes sorgt dafür das man auch außerhalb von PhpStorm Veränderungen an Projektdateien vornehmen kann und diese auch automatisch auf den Remote Server kopiert werden. Sehr hilfreich wenn man zum Beispiel Bilder hinzufügt oder löscht.
  • Create empty directories erstellt leere Verzeichnisse die man lokal anlegt auch auf dem Server.
  • Delete target item if source one is missing würde ich nicht empfehlen zu benutzen. Hier kann es zu unerwünschten Reaktionen kommen. Mir ist es passiert das ich ein Projekt vom Remote Server herunterladen wollte. Da mein lokales Projekt aber leer war, hat PhpStorm die Dateien auf dem Remote Server auch gelöscht...

Phpstorm Deployment Options

Nach einem Klick auf Finish legt PhpStorm los. Hat man sein Projekt lokal angelegt, muss man es jetzt noch auf den Testserver übertragen. Dazu rechts klicken auf den Projektordner im Dateimanager und ganz unten auf Deployment -> Upload to Testserver klicken. Nun kann man lokal Änderungen vornehmen, wie gewohnt mit dem VCS arbeiten und die Anpassungen auf dem Testserver ansehen. Die in dem Wizard getroffenen Einstellungen kann man jederzeit ändern. Dazu klickt man auf File -> Settings -> Project Settings und hier Deployment und Options.

Git und was ist mit dem .idea Verzeichnis?

PhpStorm legt im Projektverzeichnis das .idea/ Verzeichnis an. Das möchte man natürlich auch nicht in seinem Repository haben. Schaut man in die Git Hilfe zum Thema .gitignore, dann sollte der Ausschluss in die projectname/.git/info/exclude Datei eingetragen werden. Es gibt aber auch den Weg das Verzeichnis direkt in PhpStorm zu ignorieren. Ich bevorzuge aber den info/exclude weg.

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.idea/

PhpStorm möchte ein Passwort beim pushen/pullen?

Standardmäßig benutzt PhpStorm seine eigene SSH Implementierung. Umstellen kann man dies in den Settings.

File -> Settings ->Project Settings -> Version Control -> VCSs -> Git

Dort stellt man SSH Executable auf Native um und dann sollte kein Passwort mehr abgefragt werden (wenn man Public Key Auth wie im anderen Artikel beschrieben eingerichtet hat).

Hinweis: Das funktionierte bei mir eine Zeit lang sehr gut, aber seit ich meine portable Einstellungen benutze, friert PhpStorm beim push/pull ein und muss beendet werden. Ich habe noch nicht herausgefunden warum dies geschieht. Um trotzdem arbeiten zu können, lasse ich die SSH Executable auf PhpStorm ssh stehen und benutze den PhpStorm Passwortmanager um nicht ständig Passwörter eingeben zu müssen. Wenn jemand hierfür eine Lösung hat, würde ich mich über ein Kommentar freuen.

Zeichensatz einstellen

Ich hatte noch ein anderes Problem bei einem Projekt das kein UTF8 benutzte. Sobald ich Dateien in PhpStorm geöffnet hatte und sie wieder speicherte, waren die Sonderzeichen zerschossen. Dem kann man entgegenwirken in dem man die File Encodings anpasst.

File -> Settings ->Project Settings -> File Encodings

Hier kann man für jede Datei, für Ordner/Unterordner oder für die komplette IDE das Encoding festlegen.

Deployment auf den Live Server vom Git Server aus

Im nächsten Artikel wird gezeigt wie man vom Git Server aus das Projekt auf den Live Server (oder mehrerer) veröffentlicht: Deployment einfach gemacht mit Git Hooks

Leave a Reply