2009-07-02 3 views
5

Ho avviato un progetto in cui 2 persone svilupperanno un sito su WordPress. Potrebbe anche essere necessario avere una configurazione del server di sviluppo in cui il mio cliente può visualizzare le modifiche al sito prima di inviarlo dal vivo. Potrebbero esserci anche modifiche al database (come le impostazioni di wordpress) che dovrebbero essere trasferite dallo sviluppo all'avanzamento della produzione.Qual è il tuo flusso di lavoro per la creazione di siti web basati su WordPress?

Mi chiedo quale sia il miglior flusso di lavoro per questo. Capisco i concetti generali perché di solito sviluppo in Rails e quindi eseguo migrazioni e utilizzo capistrano e git, ma mi piacerebbe avere lo stesso flusso di lavoro stretto per un sito WordPress. Gli sviluppatori di WordPress esperti là fuori?

Aggiornamento: Forse non l'ho chiarito abbastanza, ma capisco wordpress. Ho creato 5-10 blog wordpress e funzionalità personalizzate. Tuttavia, Non ho mai lavorato su un sito wordpress con più persone o ho dovuto occuparmi di avere un ambiente di sviluppo, di staging e di produzione.

Grazie!

risposta

0

WordPress tende ad essere abbastanza modulare; Penso che un controllo del codice sorgente possa aiutare e forse scrivere uno script per automatizzare il caricamento su un sito di anteprima. È possibile mantenere una cartella aggiornata solo da SVN e una cartella di lavoro.

WordPress è modulare nel senso che può utilizzare modelli di pagina e widget, nonché plug-in. Puoi scrivere pezzi del tuo sito come widget e plugin e metterli insieme per farlo funzionare. Per le pagine con layout personalizzato o codice PHP, è possibile utilizzare i modelli di pagina. Raramente hai bisogno di toccare i file core di WordPress (e nemmeno nessuno), quindi se ti attieni agli strumenti di estensione forniti da WordPress, andrebbe bene.

+0

ok, capisco wordpress. forse avrei dovuto renderlo più chiaro. questa domanda riguarda specificamente il flusso di lavoro e sto cercando una risposta con specifiche. spero nei casi in cui ho bisogno di scrivere script, la gente può fornire i link – Tony

0

Si potrebbe voler provare il plug-in di Role Manager per la gestione delle autorizzazioni e Turnkey Wordpress per l'installazione di wp veloce nella macchina virtuale. Non ho la minima idea di qualcosa che potrebbe avere un ruolo da git.

1

Flusso di lavoro eh? Bene, ho lavorato con un paio di persone su complessi siti Web WordPress e continuo a farlo. Usiamo Subversion e Trac il più delle volte e raramente viene fatto qualche cambiamento nel database. Solo durante l'installazione, immagino.

Ecco lo script:

#!/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 

E 'troppo semplice, lo so, ma questo è il modo in cui mi piace;) Non dimenticare di sostituire password con la password e pehaps non vorrebbe usa la radice utente per questi scopi (non mi interessa davvero, ecco perché lo faccio).

Salvare il file in copydb.sh per esempio, allora chmod + x copydb.sh e quindi è possibile eseguire in questo modo: ./copydb.sh database1 database2;)

+0

usi siti dev o solo un sito prod. se si utilizza un sito dev, è necessario copiare le impostazioni del database ogni volta che si aggiunge un plug-in. probabilmente non è troppo doloroso però, volevo solo ottenere un feedback sul fatto che fosse una cattiva idea – Tony

+0

cool .... cura di condividere la sceneggiatura? – Tony

+0

Certo, guarda l'aggiornamento della risposta – kovshenin

2

Per far fronte a questo tipo di DEV e ambiente di produzione, ho scritto uno script perl per aiutarmi con quello che altrimenti sarebbe un lavoro manuale. Ho dato alcuni passaggi ai nomi familiari, quindi ricordo di eseguirli nell'ordine corretto. Ho solo DEV sotto SVN. Creo ogni volta un ambiente PRODUCTION con questo script. In questo modo non devo preoccuparmi di mantenere 2 rami di codice.

Sto usando SVN quindi ho scelto una nuova directory di checkout (come/tmp/foobar) del mio codice DEV. Non ci sarà molto tempo.

step 0 opzionali: diff strutture di database

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

volte plugin aggiungerà tabelle, e questo sarà mostrare che. Altrimenti ripeto le modifiche apportate all'interno delle tabelle (installa un plugin) quando non vale la pena di diffare certe tabelle e copiare istruzioni SQL.

passaggio 1 clean: Lo script cancella tutti i file nella directory corrente, esegue un nuovo controllo svn del ramo DEV. Questo nuovo check-out verrà trasformato nel codice PRODUCTION e copiato nel suo webroot.

punto 2 codice: perl esegue una ricerca vim e sostituisce il nome del database in wpconfig.php. La ricerca e la sostituzione sono altrettanto facilmente eseguite in Perl.

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

Rimuovere la directory di caricamento file locale (in modo da non sovrascrivere quella PRODUCTION). wpcontent/uploads Credo che sia su un'installazione standard.

Un'altra ricerca e sostituzione su tutti i file di testo all'interno del progetto che hanno la mia DEV URL, ad esempio

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

fase 3 di installazione. Salvare il wpcontent/uploads con dircopy() per sicurezza. Fai un dircopy() di questa directory ripulita al webroot PRODUCTION. Rimuovere tutte le directory .svn all'interno della webroot in questo modo:

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

Ora il codice DEV è stata trasformata in vostro codice di produzione sostituzione di tutti gli URL hardcoded e mantenere al sicuro intorno alla directory di upload che non è in SVN. Puoi persino fermarlo e avviare apache anche per te. Spero che la mia soluzione aiuti a risolvere il tuo problema.