Skip to content

Deployment

FG Static Export kann ein bestehendes Export-Verzeichnis manuell oder am Ende eines Exportlaufs auf ein Remote-Ziel übertragen. Welche Verfahren auswählbar sind, hängt vom Systemcheck des WordPress-Servers ab.

Vor jedem Deployment prüft die Implementierung:

  1. Ist Deployment aktiviert?
  2. Existiert das lokale Export-Verzeichnis?
  3. Ist die aktive Methode auf dem aktuellen Server verfügbar?
  4. Sind die für die Methode erforderlichen Zugangsdaten vorhanden?

Das Ergebnis und die Meldungen des letzten Laufs werden als WordPress-Optionen gespeichert und im Backend angezeigt.

  • PHP-Funktion exec() ist verfügbar und nicht deaktiviert
  • Kommando rsync ist vorhanden
  • Kommando ssh ist vorhanden
  • SSH-Zugang zum Zielserver

Der Export-Root wird mit rsync -az übertragen. SSH verwendet den konfigurierten Port, BatchMode=yes und StrictHostKeyChecking=accept-new.

Optional kann ein Private-Key-Pfad angegeben werden.

Bei aktivierter Option Remote-Dateien löschen ergänzt das Plugin --delete.

Die Funktion ssh2_connect() muss verfügbar sein.

Die Implementierung versucht zunächst Key-Authentifizierung, wenn ein privater Key und die zugehörige .pub-Datei vorhanden sind. Andernfalls kann Passwort-Authentifizierung verwendet werden.

Dateien und erforderliche Verzeichnisse werden rekursiv auf das SFTP-Ziel übertragen.

Grenze: Die gespeicherte Option Remote Delete ist für diese Methode nicht implementiert.

Die Klasse \phpseclib3\Net\SFTP muss über den Composer-Autoloader verfügbar sein.

Das analysierte Projekt enthält phpseclib/phpseclib in Version 3.0.55 im Composer-Lockfile.

Unterstützt werden:

  • Passwort-Login
  • Private-Key-Login über PublicKeyLoader
  • optionale Passphrase für den Private Key

Grenze: Remote Delete ist auch bei dieser Methode nicht implementiert.

Für FTP muss ftp_connect() vorhanden sein. Für FTPS wird zusätzlich ftp_ssl_connect() benötigt.

Die Verbindung wird in den Passivmodus gesetzt. Dateien werden rekursiv im Binärmodus übertragen.

Ist FTPS aktiviert, aber ftp_ssl_connect() nicht verfügbar, protokolliert das Plugin eine Warnung und versucht anschließend normales, unverschlüsseltes FTP.

Wenn eine verschlüsselte Verbindung zwingend erforderlich ist, sollte deshalb zusätzlich der Systemcheck kontrolliert werden.

Grenze: Remote Delete ist für FTP/FTPS nicht implementiert.

Der Code kennt die Methode zip_remote und markiert sie bei vorhandenem ZipArchive als technisch auswählbar. Die eigentliche Remote-Ausführung ist in Version 5.5.4 jedoch ausdrücklich nicht implementiert und endet mit einer Fehlermeldung.

Diese Methode sollte im aktuellen Stand nicht als Deployment-Verfahren eingesetzt werden.

Auto-Deploy wird nur ausgeführt, wenn:

  • Deployment aktiviert ist und
  • Nach dem Export automatisch deployen aktiviert ist.

Der Deployment-Schritt startet am Ende des Exportlaufs; ein separater globaler „Export erfolgreich“-Status wird dafür nicht ausgewertet. Schlägt er fehl, bleibt der zuvor erzeugte lokale Export bestehen und der Fehler wird im Export- und Deployment-Log festgehalten.

Passwörter können im Backend gespeichert oder über Konstanten in wp-config.php zur Laufzeit gesetzt werden. Details stehen unter Konfiguration.