Synchronisieren Sie eine WordPress-Site mit Git

Lesezeit: 3 Minuten

Benutzer-Avatar
Dan Green-Leipciger

Was ist mit WordPress der beste Weg, um einen lokalen Testserver mit einem Staging-Server zu synchronisieren?

Dies funktioniert mit Git und setzt voraus, dass Sie bereits ein Repository mit GitHub usw. eingerichtet haben.

Dies setzt voraus, dass Sie Linux oder OSX verwenden.

1) Herunterladen dieses PHP-Skript und speichern Sie es irgendwo auf Ihrem lokalen Rechner.

2) Legen Sie dies in Ihre lokale Maschine ein ~/.bash_profile

push-wordpress() { php SCRIPT_LOCATION/dumpsite.php tshirt_wp LOCAL_URL REMOTE_URL DUMP_LOCATION ; cd LOCAL_REPO_DIRECTORY; git commit -a -m 'Database Updated'; git push origin master; }

3) Legen Sie dies in die Ihres Remote-Computers ~/.bash_profile

pull-wordpress() { cd REMOTE_REPO_DIRECTORY; git stash; git pull; chmod -R 755 REMOTE_REPO_DIRECTORY*; mysql -u DB_USERNAME --password=DB_PASSWORD DB_NAME < backup-DB_NAME.sql; }

4) Führen Sie auf Ihrem lokalen Computer aus push-wordpress

5) Führen Sie auf Ihrem Remote-Computer aus pull-wordress

Es sollte “out of the box” funktionieren, aber es kann einige Anpassungen erfordern.

Dans Skript funktioniert für mich mit ein paar Änderungen:

  1. Das PHP-Skript gab mir Fehler bei mysql_connect(), also musste ich die folgende Einfügung in Zeile 14 vornehmen: $host = "localhost:3306"; $user = "root"; $pass = "root";die die Standardeinstellungen für MAMP sind.
  2. das Bash-Profil sollte lauten push-wordpress() { php SCRIPT_LOCATION/dumpsite.php DB_NAME LOCAL_URL REMOTE_URL DUMP_LOCATION ; cd LOCAL_REPO_DIRECTORY; git commit -a -m 'Database Updated'; git push origin master; }. Wenn Sie es zum ersten Mal ausführen, wird die gesicherte Datenbank nicht hinzugefügt, und Sie müssen entweder a git add . und erneut committen oder hinzufügen git add . ; vor dem Git-Commit im Bash-Skript.

  • Ihr Skript hat jedoch nie eine SQL-Datei ausgegeben. Es gibt eine leere Datei aus. Ich bin mit PHP nicht vertraut, also schreibe ich dies als Bash-Skript mit wp-cli um.

    – Zuschlagen

    25. Februar 2015 um 11:20 Uhr

Benutzer-Avatar
der König2

Aus Ihrer Frage schließe ich, dass Sie drei Server haben

  1. Lokale Entwicklung
  2. Staging-Server
  3. Produktionsserver

Mein Workflow ist: Installiere WordPress auf allen drei, installiere die erforderlichen WP-Plugins und entferne das unnötige vorinstallierte WordPress-Zeug. Der einzige Ordner unter Quellcodeverwaltung ist als die wp-content/themes/my-awesome-theme Ordner oder den untergeordneten Themenordner. Klonen Sie nach der Installation die my-awesome-theme Repo im wp-content/themes Mappe.

Begründung

WordPress unterliegt nicht der Quellcodeverwaltung. Themenentwicklung ist. Genau wie die Datenbank, die wp-content/media Ordner sollten ebenfalls nicht unter Quellcodeverwaltung stehen, da sie entweder nicht quellcodegesteuert sein können oder keine Quelldateien enthalten.

Die meisten Editoren sind mit einem Unterordner unter sc zufrieden und finden das Repo. Wenn nicht, habe ich gelernt, dass beispielsweise in vscode das Öffnen und Schließen einer Datei im Themenordner die Erweiterung darauf hinweist, mit der Überwachung des Ordners zu beginnen.

Zusätzlich

Was ich normalerweise auch tue, ist, die zu aktualisieren wp-config.php um an den drei unterschiedlichen Orten irgendwo nach der WP_DEBUG-Definition zu arbeiten, gehören:

define( 'WP_SITEURL', 'http://my-awesome-site.local');
define( 'WP_HOME', 'http://my-awesome-site.local');

Und auf der Bühne/Prod so etwas wie;

define( 'WP_SITEURL', 'https://my-awesome-site.tld');
define( 'WP_HOME', 'https://my-awesome-site.tld');

um zu verhindern, dass diese in der Datenbank nachgeschlagen werden. Möglicherweise müssen Sie das Gleiche mit der Einrichtung der Datenbankverbindung weiter oben tun.

Anmerkungen

Einbinden des gesamten WordPress-Ordners in SC und dann manuelles Gitignorieren des I nicht Notwendigkeit klingt wie der falsche Weg herum. Und ist wahrscheinlich nicht zukunftssicher; wer weiß, was die WordPress-Entwickler der Installation hinzufügen.

1016280cookie-checkSynchronisieren Sie eine WordPress-Site mit Git

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy