Fuer Umgebungen ohne Docker und CI, mit Ausschluss-Regeln gegen versehentliche Live-Deployments
Nicht jedes Projekt laeuft in einem Docker-Setup mit CI-Pipeline. Wo nur ein klassischer FTP-Zugang existiert, kann PhpStorm jede gespeicherte Datei automatisch per SFTP hochladen, allerdings nur dann sicher, wenn Ausschluss-Regeln ein versehentliches Live-Deployment verhindern.
Inhaltsverzeichnis
- 1. Wann SFTP-Deployment ueberhaupt noch sinnvoll ist
- 2. Eine SFTP-Verbindung in PhpStorm einrichten
- 3. Automatischen Upload bei jedem Speichern aktivieren
- 4. Die konkreten Risiken eines unkontrollierten Auto-Uploads
- 5. Ausschluss-Regeln zur Absicherung konfigurieren
- 6. Staging- und Live-Verbindungen visuell unterscheidbar machen
- 7. Ein sichererer Zwischenweg: manueller Upload mit Vorschau
- 8. Lokalen und entfernten Stand regelmaessig vergleichen
- 9. Praxis-Checkliste vor der Aktivierung von Auto-Upload
- 10. Zusammenfassung
- 11. FAQ
1. Wann SFTP-Deployment ueberhaupt noch sinnvoll ist
Fuer mironsoft.de gilt der Grundsatz, dass Live-Aenderungen ausschliesslich per FTP hochgeladen werden, weil kein automatisiertes Deployment ueber ein Docker-Setup oder eine CI-Pipeline existiert. Genau fuer diese Konstellation ist die SFTP-Deployment-Funktion von PhpStorm gebaut: kleinere Agentur-Projekte, Shared-Hosting-Umgebungen oder Legacy-Systeme, bei denen ein vollstaendiger Container- oder Pipeline-Aufbau wirtschaftlich nicht sinnvoll ist.
Wichtig ist dabei die Abgrenzung zum Hauptprojekt: Waehrend das eigentliche Mironsoft-Docker-Setup mit bin/magento und den zugehoerigen Wrapper-Skripten arbeitet, betrifft SFTP-Deployment typischerweise separate kleinere Projekte oder genau jene Faelle, in denen der lokale Teststand nicht automatisch mit dem Live-Stand uebereinstimmt und ein manueller, aber werkzeuggestuetzter Upload noetig bleibt.
2. Eine SFTP-Verbindung in PhpStorm einrichten
Unter Settings > Build, Execution, Deployment > Deployment laesst sich ueber das Plus-Symbol eine neue Serververbindung vom Typ SFTP anlegen. Neben Host, Port, Benutzername und Authentifizierungsmethode ist das Root-Path-Feld entscheidend: es legt fest, welches Verzeichnis auf dem Server als Basis fuer alle relativen Pfade dient, und sollte immer so eng wie moeglich auf das tatsaechliche Projektverzeichnis eingeschraenkt werden.
Auf dem Reiter Mappings wird anschliessend festgelegt, welcher lokale Ordner welchem entfernten Verzeichnis entspricht. Bei mehreren Umgebungen, etwa einem Staging- und einem Live-Zugang, empfiehlt es sich, fuer jede Umgebung eine eigene, klar benannte Serververbindung anzulegen, etwa 'Kunde-X Staging' und 'Kunde-X LIVE', statt eine einzelne Verbindung durch Umschalten der Zugangsdaten mehrfach zu verwenden.
Settings > Build, Execution, Deployment > Deployment
+ Neue Verbindung: SFTP
Name: Kunde-X LIVE
Host: ftp.kunde-x-hosting.de
Port: 22
Root path: /httpdocs
Mappings-Tab:
Local path: /home/mir/development/kunde-x
Deploy path: /
3. Automatischen Upload bei jedem Speichern aktivieren
Der automatische Upload wird ueber Tools > Deployment > Automatic Upload (always) aktiviert. Ist diese Option gesetzt, laedt PhpStorm jede gespeicherte Datei sofort auf den konfigurierten Server hoch, ohne dass ein manueller Upload-Befehl noetig ist. Fuer schnelle Korrekturen an einer einzelnen CSS-Datei oder einem PHP-Template auf einem Shared-Hosting-System spart das gegenueber einem klassischen FTP-Client spuerbar Zeit, weil der Wechsel zu einem separaten Tool entfaellt.
Diese Bequemlichkeit ist zugleich der groesste Risikofaktor der gesamten Funktion: Ohne weitere Absicherung laedt PhpStorm jede Datei hoch, die im gemappten Ordner gespeichert wird, unabhaengig davon, ob es sich um eine bewusste Aenderung, eine versehentliche Testaenderung oder eine automatisch generierte Datei handelt. Genau deshalb ist automatischer Upload ohne begleitende Ausschluss-Regeln fuer produktive Umgebungen nicht empfehlenswert.
4. Die konkreten Risiken eines unkontrollierten Auto-Uploads
Das haeufigste Schadensmuster: Ein Entwickler oeffnet eine Datei zum Nachschauen, aendert versehentlich eine Zeile bei einem Testexperiment, speichert reflexartig mit Strg+S, und die fehlerhafte Version landet ohne weitere Bestaetigung sofort live. Bei aktivem Auto-Upload gibt es keinen Zwischenschritt, der diese Aktion abfaengt, anders als bei einem manuellen FTP-Upload, bei dem zumindest der bewusste Schritt des Hochladens eine gedankliche Kontrollinstanz darstellt.
Ein zweites, subtileres Risiko betrifft generierte oder temporaere Dateien. Wird ein IDE-Cache-Ordner, ein lokales .env mit abweichenden Zugangsdaten oder ein composer.lock aus einem lokalen Testlauf versehentlich mit hochgeladen, kann das den Live-Stand in einer Weise veraendern, die sich nicht sofort als Fehler zeigt, sondern erst spaeter zu inkonsistentem Verhalten fuehrt. Solche Dateien gehoeren grundsaetzlich auf eine Ausschlussliste, unabhaengig davon, ob Auto-Upload aktiv ist oder nicht.
5. Ausschluss-Regeln zur Absicherung konfigurieren
Ueber den Excluded-Paths-Bereich einer Deployment-Konfiguration lassen sich einzelne Ordner oder Dateimuster vom Upload ausschliessen. Sinnvolle Kandidaten sind Verzeichnisse wie .git, node_modules, var/log, generated und pub/static, sowie Konfigurationsdateien wie .env oder lokale Datenbank-Dumps, die niemals auf dem Live-Server landen sollten. Diese Liste sollte projektspezifisch gepflegt werden, nicht als generische Kopie eines anderen Projekts uebernommen werden.
Zusaetzlich zur Ausschlussliste unterstuetzt PhpStorm auch das explizite Markieren von Verzeichnissen als 'Excluded' direkt im Projektbaum, ueber das Kontextmenue unter Mark Directory As. Dateien in einem so markierten Ordner werden von der Indexierung und vom Deployment gleichermassen ausgenommen, was sich besonders fuer grosse, generierte Verzeichnisse eignet, die ohnehin nie manuell editiert werden sollten.
Deployment-Konfiguration > Excluded Paths:
/.git
/node_modules
/var/log
/var/cache
/generated
/pub/static
/.env
/*.sql
6. Staging- und Live-Verbindungen visuell unterscheidbar machen
Weil ein Verwechseln von Staging- und Live-Verbindung der wahrscheinlichste menschliche Fehler bei diesem Workflow ist, lohnt es sich, beide Serververbindungen bewusst unterschiedlich zu benennen und, falls das Deployment-Panel dies zulaesst, mit unterschiedlichen Farbmarkierungen zu versehen. Ein Name wie 'ACHTUNG LIVE Kunde-X' ist zwar unelegant, reduziert aber nachweislich die Zahl der Fehlklicks im Vergleich zu neutralen Namen wie 'Server 2'.
Zusaetzlich sollte automatischer Upload nur fuer die tatsaechlich als aktiv gesetzte Serververbindung greifen. Bevor an einem Live-Projekt gearbeitet wird, lohnt sich ein bewusster Blick auf Tools > Deployment, um zu bestaetigen, welche Verbindung als Default markiert ist, denn genau diese wird beim automatischen Upload verwendet, nicht zwingend die zuletzt genutzte.
7. Ein sichererer Zwischenweg: manueller Upload mit Vorschau
Statt des vollautomatischen Uploads bei jedem Speichern bietet PhpStorm mit Tools > Deployment > Upload to eine Variante, bei der der Upload bewusst pro Datei oder pro markiertem Verzeichnis ausgeloest wird. In Kombination mit der Funktion Sync with Deployed to laesst sich zudem ein Diff zwischen lokaler und entfernter Version anzeigen, bevor tatsaechlich hochgeladen wird, was fuer sensible Live-Umgebungen einen sinnvollen Mittelweg zwischen Komfort und Sicherheit darstellt.
Fuer Projekte, bei denen versehentliche Live-Aenderungen besonders teuer waeren, etwa waehrend verkaufsstarker Zeiten im Shop, ist es ratsam, automatischen Upload grundsaetzlich zu deaktivieren und stattdessen bewusst mit Upload to vor jedem Livegang zu arbeiten. Der Zeitverlust gegenueber dem automatischen Modus ist gering, der Sicherheitsgewinn dagegen erheblich.
8. Lokalen und entfernten Stand regelmaessig vergleichen
Da bei SFTP-Deployment keine Versionskontrolle auf dem Server existiert, kann der Live-Stand mit der Zeit vom lokalen Stand abweichen, etwa wenn ein Kollege direkt per klassischem FTP-Client Aenderungen vorgenommen hat, ohne PhpStorm zu nutzen. Ueber Tools > Deployment > Browse Remote Host laesst sich der Serverinhalt direkt im Projektbaum-Stil einsehen und mit dem lokalen Stand vergleichen.
Ein regelmaessiger Abgleich, insbesondere vor groesseren Aenderungen, verhindert, dass ein automatischer Upload versehentlich Aenderungen ueberschreibt, die ausserhalb von PhpStorm direkt auf dem Server vorgenommen wurden. Diese Kontrolle ersetzt keine echte Versionskontrolle, reduziert aber das Risiko widerspruechlicher Stände erheblich.
9. Praxis-Checkliste vor der Aktivierung von Auto-Upload
Vor der ersten Aktivierung von Automatic Upload (always) auf einer neuen Verbindung lohnt sich folgende Reihenfolge: Root-Path und Mappings pruefen, Ausschlussliste fuer .git, node_modules, .env und generierte Verzeichnisse befuellen, Serververbindung eindeutig als Staging oder Live benennen, und einen ersten Testupload mit einer unkritischen Datei durchfuehren, um die Mapping-Korrektheit zu bestaetigen, bevor produktiver Code betroffen ist.
Diese Checkliste dauert bei einem neuen Projekt selten laenger als zehn Minuten, verhindert aber genau die Fehler, die bei SFTP-Deployment am teuersten sind: ein versehentliches Ueberschreiben von Live-Dateien durch eine falsch gemappte oder ungeschuetzte Verbindung.
| Absicherung | Wo konfiguriert | Schuetzt vor | Empfehlung |
|---|---|---|---|
| Excluded Paths | Deployment-Konfiguration | Upload von .git, .env, generierten Dateien | Immer projektspezifisch pflegen |
| Eindeutige Verbindungsnamen | Serververbindung anlegen | Verwechslung von Staging und Live | Klar unterscheidbare Namen wie LIVE/Staging |
| Manueller Upload to | Tools > Deployment | Versehentlichen Auto-Upload bei sensiblen Projekten | Fuer Live-Umgebungen statt Auto-Upload nutzen |
| Remote-Abgleich | Browse Remote Host | Widerspruechliche Staende zwischen lokal und Server | Vor groesseren Aenderungen pruefen |
Mironsoft
PhpStorm-Setup, Docker-Integration und Team-Produktivität
PhpStorm, das für Magento- und PHP-Projekte wirklich optimal läuft?
Wir prüfen bestehende PhpStorm-Setups auf langsame Indizierung, ungenutzte Docker-Integration und fehlende Team-Konventionen und richten eine Konfiguration ein, die von der ersten Sekunde an produktiv ist.
Setup-Review
Indexing, Interpreter und Speicher-Einstellungen für große Magento-Projekte optimieren.
Docker-Integration
Xdebug, PHPUnit und Datenbank-Tools sauber mit dem Docker-Setup verbinden.
Team-Konventionen
Inspection-Profile, Code-Style und Live-Templates projektweit vereinheitlichen.
10. Zusammenfassung
SFTP-Auto-Upload in PhpStorm: Das Wichtigste auf einen Blick
Einsatzfall
SFTP-Deployment fuer Projekte ohne Docker oder CI, etwa kleinere Agentur-Projekte
Komfort
Automatic Upload (always) laedt jede gespeicherte Datei sofort auf den Server
Hauptrisiko
Versehentliche Testaenderungen landen ohne Zwischenschritt sofort live
Absicherung
Ausschluss-Regeln, eindeutige Verbindungsnamen und manueller Upload fuer sensible Umgebungen