Wie sieht Ihr Workflow zum Erstellen von Websites auf Basis von WordPress aus?

Lesezeit: 5 Minuten

Benutzer-Avatar
Toni

Ich starte ein Projekt, bei dem 2 Personen eine Website auf WordPress entwickeln. Es kann auch erforderlich sein, einen Entwicklungsserver einzurichten, auf dem mein Kunde Änderungen an der Website anzeigen kann, bevor wir sie live übertragen. Es kann auch Datenbankänderungen (wie WordPress-Einstellungen) geben, die von der Entwicklung über die Entwicklung bis zur Produktion vorangetrieben werden sollten.

Ich frage mich, was der beste Workflow dafür ist. Ich verstehe die allgemeinen Konzepte, weil ich normalerweise in Rails entwickle und daher Migrationen durchführe und capistrano und git verwende, aber ich hätte gerne den gleichen straffen Workflow für eine WordPress-Site. Irgendwelche erfahrenen WordPress-Entwickler da draußen?

Aktualisieren: Vielleicht habe ich das nicht deutlich genug gemacht, aber ich verstehe WordPress. Ich habe 5-10 WordPress-Blogs und angepasste Funktionen erstellt. Jedoch, Ich habe noch nie mit mehreren Leuten an einer WordPress-Site gearbeitet oder musste mich mit einer Entwicklungs-, Staging- und Produktionsumgebung auseinandersetzen.

Vielen Dank!

Um mit dieser Art von DEV- und PRODUKTIONS-Umgebung fertig zu werden, habe ich ein Perl-Skript geschrieben, das mir bei der ansonsten manuellen Arbeit hilft. Ich habe bestimmten Schritten vertraute Namen gegeben, damit ich daran denke, sie in der richtigen Reihenfolge auszuführen. Ich habe nur DEV unter SVN. Mit diesem Skript erstelle ich jedes Mal eine PRODUKTIONS-Umgebung. Auf diese Weise muss ich mich nicht um die Pflege von 2 Codezweigen kümmern.

Ich verwende SVN, also wähle ich ein neues Checkout-Verzeichnis (wie /tmp/foobar) meines DEV-Codes. Es wird nicht sehr lange dort sein.

Optionaler Schritt 0: Diff-Datenbankstrukturen

mysqldump -d -u USER -pPASS mydotcom > production.sql
mysqldump -d -u USER -pPASS mydotcom_dev > development.sql
vim -d production.sql development.sql

Manchmal fügen Plugins Tabellen hinzu, und dies wird das zeigen. Andernfalls wiederhole ich die Änderungen, die in Tabellen vorgenommen wurden (installiere ein Plugin), wenn es sich nicht lohnt, bestimmte Tabellen zu unterscheiden und SQL-Anweisungen zu kopieren.

Schritt 1 clean: Das Skript löscht alle Dateien im aktuellen Verzeichnis, führen Sie einen neuen svn checkout des DEV-Zweigs durch. Dieser frische Checkout wird in den PRODUCTION-Code umgewandelt und in sein Webroot kopiert.

schritt 2 make: perl führt eine vim-suche durch und ersetzt den datenbanknamen in wpconfig.php. Das Suchen und Ersetzen ist in Perl genauso einfach möglich.

system('vim -c "%s/define(\'DB_NAME\', \'mydotcom_dev\'/define(\'DB_NAME\', \'mydotcom\'/g | w | q" wp-config.php'); 

Entfernen Sie das lokale Datei-Upload-Verzeichnis (damit wir das PRODUCTION-Verzeichnis nicht überschreiben). wpcontent/uploads Ich glaube, es ist eine Standardinstallation.

Ein weiteres Suchen und Ersetzen aller Textdateien innerhalb des Projekts, die beispielsweise meine DEV-URL haben

vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php

Schritt 3 installieren. Sichern Sie wpcontent/uploads mit dircopy(), um sicher zu sein. Führen Sie eine dircopy() dieses bereinigten Verzeichnisses zum Webroot PRODUCTION durch. Entfernen Sie alle .svn-Verzeichnisse innerhalb des Webroots wie folgt:

find /PRODUCTION/WEBROOT -ignore_readdir_race -name .svn -exec rm -fr {} \; >/dev/null 2>&1

Jetzt wurde Ihr DEV-Code in Ihren PRODUKTIONS-Code umgewandelt, der alle hartcodierten URLs ersetzt und das Upload-Verzeichnis, das sich nicht in SVN befindet, sicher aufbewahrt. Sie können sogar Apache für Sie stoppen und starten lassen. Ich hoffe, meine Lösung hilft, Ihr Problem zu lösen.

Benutzer-Avatar
kowschenin

Arbeitsablauf oder? Nun, ich habe mit ein paar Leuten an komplexen WordPress-Websites gearbeitet und tue es immer noch. Wir verwenden meistens Subversion und Trac und es kommt selten zu Änderungen in der Datenbank. Nur während der Einrichtung, denke ich.

Hier ist das Skript:

#!/bin/sh
echo Copying $1 to $2 ...
mysqldump -uroot -pPASSWORD $1 > /tmp/tempdump.sql
mysql -uroot -pPASSWORD -e "CREATE DATABASE $2;"
mysql -uroot -pPASSWORD $2 < /tmp/tempdump.sql
rm -f /tmp/tempdump.sql
echo Complete

Es ist viel zu einfach, ich weiß, aber so mag ich es 😉 Vergessen Sie nicht, PASSWORD durch Ihr Passwort zu ersetzen, und vielleicht möchten Sie den Benutzer root für diese Zwecke nicht verwenden (ist mir aber egal , deshalb tue ich).

Speichern Sie die Datei in copydb.sh zum Beispiel dann chmod +x copydb.sh und dann können Sie es so ausführen: ./copydb.sh database1 database2 😉

  • verwendest du dev-sites oder nur eine prod-site. Wenn Sie eine Entwicklerseite verwenden, müssten Sie die DB-Einstellungen jedes Mal kopieren, wenn Sie ein Plugin hinzufügen. Es ist wahrscheinlich nicht allzu schmerzhaft, wollte nur ein Feedback dazu bekommen, ob das eine schlechte Idee war oder nicht

    – Toni

    10. Juli 2009 um 19:10 Uhr

WordPress neigt dazu, ziemlich modular zu sein; Ich denke, eine Quellcodeverwaltung wird helfen und vielleicht ein Skript schreiben, um das Hochladen auf eine Vorschau-Site zu automatisieren. Sie können einen Ordner behalten, der nur von SVN aktualisiert wird, und einen Arbeitsordner.

WordPress ist insofern modular, als es Seitenvorlagen und Widgets sowie Plugins verwenden kann. Sie können Teile Ihrer Website als Widgets und Plugins schreiben und sie zusammenfügen, damit sie funktioniert. Für Seiten mit benutzerdefiniertem Layout oder PHP-Code können Sie Seitenvorlagen verwenden. Sie müssen die WordPress-Kerndateien selten anfassen (und das sollte auch niemand tun). Wenn Sie sich also an die von WordPress bereitgestellten Erweiterungstools halten, wäre es in Ordnung.

  • ok, ich verstehe wordpress. vielleicht hätte ich das deutlicher machen sollen. Diese Frage bezieht sich speziell auf den Workflow und ich suche nach einer Antwort mit Einzelheiten. Ich hoffe, dass in Fällen, in denen ich Skripte schreiben muss, die Leute Links bereitstellen können

    – Toni

    2. Juli 2009 um 17:43 Uhr

Vielleicht möchten Sie das Role Manager-Plugin für die Berechtigungsverwaltung ausprobieren und Schlüsselfertiges WordPress für die schnelle Installation von wp in einer virtuellen Maschine. Ich habe jedoch keine Ahnung von etwas, das eine git-ähnliche Rolle spielen könnte.

1344640cookie-checkWie sieht Ihr Workflow zum Erstellen von Websites auf Basis von WordPress aus?

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

Privacy policy