2009-07-02 3 views
5

Ich starte ein Projekt, wo 2 Leute eine Seite auf WordPress entwickeln werden. Es kann auch notwendig sein, einen Entwicklungsserver einzurichten, in dem mein Client Änderungen an der Site anzeigen kann, bevor wir sie live übertragen. Es kann auch zu Datenbankänderungen (wie Wordpress-Einstellungen) kommen, die von der Entwicklung bis zur Produktion in die Entwicklung gehen sollten.Was ist Ihr Workflow für die Erstellung von Websites auf WordPress?

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

Update: Vielleicht habe ich das nicht klar genug gemacht, aber ich verstehe Wordpress. Ich habe 5-10 WordPress-Blogs und angepasste Funktionen erstellt. Jedoch, Ich habe nie auf einer Wordpress-Website mit mehreren Personen gearbeitet oder hatte mit einer Dev, Staging und Produktionsumgebung zu tun.

Vielen Dank!

Antwort

0

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, der nur von SVN aktualisiert wird, und einen Arbeitsordner behalten.

WordPress ist modular in einem Sinne, dass es Seitenvorlagen und Widgets sowie Plugins verwenden kann. Sie können Teile Ihrer Website als Widgets und Plugins schreiben und zusammenfügen, damit es funktioniert. Für Seiten mit benutzerdefiniertem Layout oder PHP-Code können Sie Seitenvorlagen verwenden. Sie müssen nur selten die WordPress-Kerndateien anfassen (und das sollte auch niemand). Wenn Sie also bei den von WordPress bereitgestellten Erweiterungswerkzeugen bleiben, wäre das in Ordnung.

+0

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 Details. Ich hoffe, in Fällen, in denen ich Skripte schreiben muss, können Menschen Links bieten – Tony

0

Sie könnten Role Manager-Plugin für das Berechtigungsmanagement und Turnkey Wordpress für die schnelle Installation von wp in der virtuellen Maschine ausprobieren. Habe aber keine Ahnung von etwas, das eine gitähnliche Rolle haben könnte.

1

Workflow huh? Nun, ich habe mit ein paar Leuten auf komplexen WordPress-Websites gearbeitet und mache das immer noch. Wir verwenden die meiste Zeit Subversion und Trac und es kommt selten zu Änderungen in der Datenbank. Nur beim Setup 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 das ist die Art, wie ich es mag;) Vergessen Sie nicht, das Kennwort mit Ihrem Passwort zu ersetzen und pehaps Sie nicht möchten, benutze den Benutzer root für diese Zwecke (es interessiert mich aber nicht wirklich, deshalb tue ich das).

Speichern Sie die Datei in copydb.sh zum Beispiel dann chmod + x copydb.sh und dann können Sie es wie folgt aus: ./copydb.sh database1 database2;)

+0

verwenden Sie dev-Seiten oder nur eine Website prod. Wenn Sie eine Dev-Site verwenden, müssen Sie jedes Mal, wenn Sie ein Plugin hinzufügen, die DB-Einstellungen kopieren. es ist aber wahrscheinlich nicht zu schmerzhaft, wollte nur ein Feedback darüber bekommen, ob das eine schlechte Idee war oder nicht – Tony

+0

cool .... kümmern sich um das Skript zu teilen? – Tony

+0

Sicher, sieh dir das Antwort-Update an – kovshenin

2

mit dieser Art von DEV und Produktionsumgebung befassen, die ich geschrieben habe ein Perl-Skript, um mir zu helfen, was sonst manuelle Arbeit wäre. Ich habe bestimmte Schritte mit vertrauten Namen versehen, sodass ich mich erinnere, sie in der richtigen Reihenfolge auszuführen. Ich habe nur DEV unter SVN. Ich erstelle jedes Mal eine PRODUCTION-Umgebung mit diesem Skript. Auf diese Weise muss ich mich nicht um die Pflege von zwei 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.

Optional 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 werden Plugins Tabellen hinzufügen, und dies wird das zeigen. Ansonsten wiederhole ich die in Tabellen vorgenommenen Änderungen (installiere ein Plugin), wenn es sich nicht lohnt, bestimmte Tabellen zu unterscheiden und SQL-Anweisungen zu kopieren.

Schritt 1 sauber: Das Skript löscht alle Dateien im aktuellen Verzeichnis, eine neue Svn Checkout der DEV-Zweigstelle. Dieser neue Checkout wird in den PRODUCTION-Code umgewandelt und in seinen Webroot kopiert.

schritt 2 make: perl führt eine vim suchen und ersetzen der datenbank name in wpconfig.php. Das Suchen und Ersetzen ist genauso einfach in Perl möglich.

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

Entfernen Sie lokale Dateiuploads Verzeichnis (so überschreiben wir nicht die PRODUKTION). wpcontent/uploads glaube ich, dass es sich um eine Standardinstallation handelt.

Ein weiteres Suchen und Ersetzen auf alle Textdateien im Rahmen des Projektes, das meine DEV-URL hat, zum Beispiel

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

Schritt 3 installieren. Sichern Sie den wpcontent/uploads mit dircopy(), um sicher zu gehen. Führen Sie eine dircopy() dieses bereinigten Verzeichnisses zum Webroot PRODUCTION aus. Entfernen Sie alle .svn Verzeichnisse innerhalb des Webroot etwa so:

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

nun Ihr DEV Code in Ihre Produktion Code verwandelt alle fest einprogrammierten URLs zu ersetzen und zu halten sicher um das Upload-Verzeichnis, das nicht im SVN ist. Sie können es sogar stoppen und Apache für Sie auch beginnen. Ich hoffe, dass meine Lösung hilft, Ihr Problem zu lösen.

Verwandte Themen