Come: spostare facilmente un'installazione di WordPress dallo sviluppo alla produzione?


199

Faccio sviluppo su una scatola e ne uso una seconda per la produzione. In questo momento ho appena scaricato il database e poi ho trovato un sostituto per le modifiche all'URL; quindi copia sui file e importa il nuovo SQL.

Ci sono modi migliori per farlo?


2
Per i nuovi arrivati ​​alla domanda. 1 anno dopo e sto ancora usando il plugin @MikeSchinkel. Ha un 0.7 su cui ho spostato un paio di installazioni senza problemi. mikeschinkel.com/downloads/wp-migrate-webhosts-0.7.zip
Ryan Gibbons

Ecco uno script senza plug-in che ho rilasciato che ha aiutato immensamente il mio processo. philipdowner.com/2012/01/…
Philip Downer,


6
Oggi esiste un plugin chiamato Duplicator: wordpress.org/extend/plugins/duplicator È letteralmente un processo in tre fasi e funziona come un incantesimo. Utilizzato già più volte per distribuire un sito Web da un ambiente di test a uno live.
Matthias,

Risposte:


122

@ Insanity5902 : La distribuzione di un sito WordPress da una casella all'altra è stata una PITA dal primo giorno in cui ho iniziato a lavorare con WordPress. (A dire la verità è stato un PITA con Drupal per 2 anni prima di iniziare con WordPress, quindi il problema non è certo esclusivamente con WordPress.)

Mi dava fastidio che ogni volta che avessi bisogno di spostare un sito avrei dovuto dedicare così tante volte duplicati e mi ha impedito di implementare per testare con la frequenza che avrei preferito. Quindi circa 4-6 mesi fa ho iniziato a lavorare su un plugin per risolvere il problema di migrazione del webhost e ho menzionato le mie idee sul forum di WP Tavern .

Bene, oggi, ho quasi funzionato e lo chiamo convenientemente " WP Migrate Webhosts ". Anche se il plug-in è ancora molto beta (probabilmente anche alfa) data la tua domanda, penso di essere pronto a lasciare che le persone inizino a battere.

Il caso d'uso previsto è che:

  1. per prima cosa lo sviluppatore gestisce il caricamento di tutti i file dei temi e dei plugin modificati tramite FTP,
  2. quindi carica il database MySQL di sviluppo sul server di test nella sua interezza e infine
  3. quindi esegue il plug-in per migrare qualsiasi riferimento dal dominio precedente a quello nuovo. (Il mio plugin non tenta di risolvere l'unione di nuovi campi di database o tabelle con dati in tempo reale; QUESTO è un problema molto più grande che non sono sicuro di come risolvere.)

Puoi scaricare il plug-in dal mio sito Web e decomprimerlo nella directory dei plug-in (se non sai come farlo, questo plug-in non fa per te perché richiede che qualcuno sappia cosa stanno facendo per usarlo.) mantieni questo plugin online fino a quando non lo rilascerò su WordPress.org, dopodiché dovresti cercarlo lì.

Per usarlo si prende un approccio diverso nella vostra wp-config.phpche la normale commentando le quattro (4) definisce DB_NAME, DB_USER, DB_PASSWORDe DB_HOSTinvece registrare i valori predefiniti per webhosts e quindi registrare informazioni su ciascun hosting stessa. Ecco come wp-config.phppotrebbe apparire quel segmento di (nota la prima sezione è il codice non necessario commentato e nota anche che ho impostato il mio file hosts sul mio computer locale con .devdomini di livello superiore non instradabili per facilitare lo sviluppo quotidiano. Sul Mac VirtualHostX lo rende un gioco da ragazzi):

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
//define('DB_NAME', 'wp30');

/** MySQL database username */
//define('DB_USER', 'wp30_anon');

/** MySQL database password */
//define('DB_PASSWORD', '12345');

/** MySQL hostname */
//define('DB_HOST', '127.0.0.1:3306');

require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
 'database'  => 'example_db',
 'user'      => 'example_user',
 'password'  => '12345',
 'host'      => 'localhost',
 'sitepath'  => '',        // '' if WordPress is installed in the root
));
register_webhost('dev',array(
 'name'      => 'Example Local Development',
 'host'      => '127.0.0.1:3306',
 'domain'    => 'example.dev',
 'rootdir'   => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
 'name'      => 'Example Test Server',
 'rootdir'   => '/home/example/public_html/test',
 'domain'    => 'test.example.com',
));
register_webhost('stage',array(
 'name'      => 'Example Staging Server',
 'rootdir'   => '/home/example/public_html/stage',
 'domain'    => 'stage.example.com',
));
register_webhost('live',array(
 'name'      => 'Example Live Site',
 'rootdir'   => '/home/example/public_html/',
 'password'  => '%asd59kar12*fr',
 'domain'    => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');

Spero che questo sia (principalmente) autoesplicativo. Ho cercato di rendere il codice il più pulito possibile, ma sfortunatamente richiede quelle due require_once()linee criptiche prima e dopo il blocco del codice di registrazione dell'host web poiché non c'era modo per me di " agganciare " WordPress prima che wp-config.phpvenga chiamato.

Dopo aver aggiornato il tuo wp-config.php, puoi semplicemente utilizzare il collegamento URL wp-migrate-webhostsper andare alla schermata di amministrazione in questo modo:

http://example.com/wp-migrate-webhosts

Quanto sopra ti porterà a una schermata di amministrazione come la seguente che ha un bel po 'di testo descrittivo e ti consente di migrare DA uno qualsiasi degli altri domini webhost con un solo clic dopo aver selezionato i domini da cui migrare ( NOTA : questo esempio mostra GIÙ da / stadio / server live di prova per lo sviluppo locale, ma state tranquilli che può migrare aL qualsiasi dominio in cui capita di essere situato. Questo significa anche il plugin sarà grande per l'assunzione di un sito vivo esistente e ottenere rapidamente un ambiente di sviluppo locale che lavora! ):

inserisci qui la descrizione dell'immagine

Se non è chiaro " migrazione " in questo contesto significa aggiornare tutti i riferimenti nel database corrente in modo che siano appropriati per l'host web attualmente definito (e " corrente " viene annusata dall'ispezione $_SERVER['SERVER_NAME']).

La cosa interessante del plugin è che implementa alcune migrazioni di base ma chiunque può agganciarlo ed eseguire le proprie migrazioni . Ad esempio, se aggiungi un plug-in della galleria che memorizza i percorsi completi delle immagini nel database, puoi agganciare l' migrate_webhostsazione a cui passeranno il " da " webhost e il " a " webhost ciascuno come un array di metadati e ti sarà permesso per eseguire tutto ciò che è necessario fare nel database utilizzando SQL o qualsiasi funzione API WordPress applicabile per eseguire la migrazione. Sì, nessuno di noi potrebbe farlo senza il plug-in, ma senza il plug-in ho scoperto che scrivere tutto il codice necessario era più sforzo di quanto valesse. Con il plugin è più semplice scrivere questi piccoli hook e farcela.

Potresti anche scoprire che le mie migrazioni falliscono nei casi limite che non ho testato e forse potresti aiutarmi a migliorare il plugin? Chiunque voglia può inviarmi un'e-mail tramite il mio account Gmail (il mio alias è "mikeschinkel").

Inoltre, il plugin è stato progettato per accettare user-definire i metadati hosting in aggiunta a quelli che riconosce come database, user, password, host, domainecc Un esempio perfetto potrebbe essere googlemaps_apikeyin cui è possibile memorizzare una delle diverse chiavi API per ciascun dominio che il vostro Google Map necessità di plugin per funzionare correttamente (chi tra voi che ha utilizzato un plug-in di Google Maps non ha distribuito un'app su un server live e ha dimenticato di cambiare il codice con la chiave API corretta? Dai, sii onesto ... :) Con questo plug-in, un googlemaps_apikeyelemento nel tuo array register_webhost () e un piccolo migrate_webhostshook personalizzato puoi eliminarlo efficacemente come un problema!

Bene, questo è tutto. Sto lanciando questo plugin qui sullo scambio di risposte di WordPress perché la domanda di @ Insanity5902 lo ha attivato. Fammi sapere se è utile, qui se appropriato o via e-mail in caso contrario.

PS Se decidi di usare questo, ricorda che è alpha / beta e ciò significa che cambierà, quindi preparati per un piccolo intervento chirurgico se vuoi usarlo ora e poi usa la versione rilasciata dopo che è stata picchiata da molte mani.

PPS Quali sono i miei obiettivi con questo? Adoro vederlo migrare nel core di WordPress in modo che tutti possano accedervi. Ma prima di ciò si può anche considerare che molte persone devono essere interessate a usarlo per assicurarsi che risolva effettivamente più problemi di quelli che potrebbe potenzialmente creare. Quindi, se ti piace l'idea, allora usala e aiutami a guadagnare slancio per un'eventuale inclusione fiduciosa nel core di WordPress.


Belle soluzioni Ho un paio di domande però 1) Devi ancora definire WP_SITEURL per accedere all'area di amministrazione? 2) Lo strumento è visualizzato solo per gli utenti amministratori? (non sono sicuro se la sezione Strumento viene visualizzata per i non amministratori)
Ryan Gibbons,

Ciao @ Insanity5902: 1) Non è necessario impostare WP_SITEURL, il plug-in fa per te. In realtà lo stai impostando quando "registri" un "dominio" e "sitepath" per un webhost. Nel normale funzionamento di WordPress WP_SITEURL deve essere impostato nel codice o nel database per garantire che nessuno falsifichi l'URL e faccia cose nefaste a causa di un valore imprevisto in $ _SERVER ['SERVER_NAME']. Il plugin WP Migrate We website imposta WP_SITEURL indirettamente sulla base di $ _SERVER ['SERVER_NAME'] ma lo farà SOLO se il dominio corrente corrisponde a uno dei domini che hai definito nel tuo file wp-config.php, nient'altro.
MikeSchinkel,

2.) Il collegamento URL che ho citato in realtà esegue un reindirizzamento nella console di amministrazione, quindi è solo per le persone che hanno effettuato l'accesso all'amministratore. Tuttavia, non ho ancora controlli specifici per l'amministratore. Non ho mai aggiunto funzionalità a un plug-in, ma avrò bisogno di ricercare a fondo come nelle prossime settimane, in modo da poter lavorare su questo nel prossimo mese. Tuttavia il plugin non è distruttivo; può migrare SOLO al dominio corrente e il processo è ripetibile, quindi anche se un non amministratore è entrato non c'è davvero nulla di male che potrebbero farci, almeno non che io possa immaginare.
MikeSchinkel,

1
/ wp-migrate-webhosts produce un 404 e / wp-admin produce "errore
Steve

5
Quindi, qual è la situazione per questo plugin? Sembra molto attraente, ma vorrei qualcosa di maturo e ben controllato. Questo post è l'unica informazione che posso trovare su di esso.
Kevin C.,

35

Quando possibile, ho impostato WP_HOMEe WP_SITEURLdentro wp-config.php. Questo, combinato con un dump e un'importazione del database, è la più semplice di tutte le soluzioni che conosco.

http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php


1
Quando non sarebbe possibile impostarli? Sembra un po 'più semplice che cambiare le cose nel database.
jfklein,

2
@jfklein Lavoro quasi sempre con una rete WordPress, che è incompatibile con queste costanti.
Annika Backstrom,

1
Fare lo stesso. Purtroppo, non tutti i temi lo onorano. vale a dire 'Temi di risposta' da ThemeID. Cercare il dump / tutte le tabelle per " localhost " (o qualunque sia il nome locale scelto), in particolare wp_options e fare ricerca e sostituzioni è spesso inevitabile.
Frank Nocke,

@FranKee Ho creato un plugin wordpress.org/plugins/pitta-migration che utilizza le costanti per aggiornare la tabella wp_options che dovrebbe coprire la maggior parte dei temi e dei plug-in
icc97

@ icc97: adorabile. Lo guarderò. PS: bella immagine di intestazione, foto della situazione.
Frank Nocke,

27

Il mio hack preferito; aggiungi un'impostazione al tuo /etc/hostsper far puntare il dominio di produzione al tuo box di sviluppo, proprio sul tuo computer. Per distribuire in produzione sincronizzare tutti i file e spingere il database.

I rischi di questa strategia sono chiari; potresti confondere il tuo ambiente di sviluppo con il tuo ambiente di produzione.

È comunque una soluzione semplice.


5
Sì! Sono così felice di non essere stata l'unica a averci pensato! qualsiasi differenza tra dev e prod è negativa. Rimuovere completamente questa differenza è molto meglio che cercare di aggirare. E questa configurazione non richiede alcun lavoro. Si può anche fare test su una macchina virtuale con file host modificato se necessario.
Alexander Bird,

2
Mi piace molto questo metodo, ma come gestite il push / pull del database?
Nenotlep,

Per quanto riguarda il rischio di confondere gli sviluppatori con i prodotti, utilizzo un plug-in di Chrome che visualizza l'indirizzo IP della pagina Web.
Saprai di

9

Volevo qualcosa di simile quando sono migrato su WP qualche mese fa, quindi ho scritto uno script shell piuttosto semplice che utilizza rsync e mysqldump su ssh:

http://snarfed.org/sync_wordpress

Non è sofisticato o basato sul web, ma ne sono felice.


8

WP Engine è un nuovo servizio che offre "Staging con un clic":

WPEngine ha una funzione esclusiva chiamata "messa in scena". Ecco come funziona: prima di apportare una modifica spaventosa al tuo blog, fai clic sul pulsante "Istantanea". Realizziamo una copia completa del tuo blog e lo installiamo in un'area separata e sicura. Puoi giocare con tutto quello che vuoi; niente è in diretta. Solo quando sei pronto per farlo vivere, tocchi il tuo sito principale.

Sembra un modo molto semplice per passare rapidamente dallo sviluppo alla produzione, soprattutto con un sito già attivo.


3
Questa è davvero un'opzione molto bella e sarà fantastica per molte persone! Ciò ovviamente non funziona per gli URL incorporati né aiuta le persone che si sviluppano localmente in modo che possano usare un IDE con un debugger. Ora, se WPEngine è in grado di creare un'interazione che unisce anche una distribuzione locale, sarà davvero qualcosa (Technosailor, stai ascoltando?)
MikeSchinkel,

D'accordo, sarebbe un'aggiunta fantastica.
Travis Northcutt,

La funzione snapshot viene copiata solo dalla produzione alla messa in scena, non viceversa. È ottimo per testare le modifiche, ma non aiuta per la distribuzione in produzione.
sam,

2
@sam in realtà, hanno recentemente iniziato a implementare la capacità di copiare dalla messa in scena alla produzione. wpengine.com/2013/04/user-portal-v2-and-staging-to-production
Travis Northcutt

7

Duplicator Plugin: ecco un plugin su cui ho lavorato. È attualmente in versione beta ma esegue il lavoro per la maggior parte dei siti. In questo momento è destinato a installazioni di WordPress più piccole. http://wordpress.org/extend/plugins/duplicator/

Risorse: ulteriori risorse per il plug-in sono disponibili qui: http://lifeinthegrid.com/duplicator/

Comunità: facci sapere quali sono i tuoi successi o eventuali problemi che potresti incontrare! Nel tentativo di gestire più facilmente i vari thread, pubblica problemi nei forum dei plugin di WordPress.org. Non pubblicare dati di registrazione dal plug-in nei forum online. I dati di registrazione possono essere inviati al nostro sito di supporto.


6

Potresti dare un'occhiata a un prodotto di iThemes, chiamato BackUpBuddy . L'ho usato solo due volte, ogni volta ho avuto un intoppo o due, ma nel complesso sembra promettente.


5

Sto affrontando personalmente questo problema con il mio progetto su Github, chiamato Autopress . Non ho ancora una soluzione perfetta, ma mi sto avvicinando, soprattutto con il plugin wpstage della gente di wpengine.


Ho appena controllato il tuo script. Bello. Se ho capito, installa un nuovo WP sul server. La domanda qui è come migrare dallo sviluppo alla produzione. Può esserti d'aiuto?
Sruly

17
È così? github.com/vluther/Autopress Suggerisco di creare collegamenti nelle risposte in modo che le persone possano fare clic!
artlung,

4
@ Mike Lee: Sì, puoi votare i commenti. Vedi, ho annullato il commento di artlung. Cerca il uparrow al passaggio del mouse a sinistra del commento.
MikeSchinkel,

Sto lavorando a un modo per mantenere tutto sotto controllo della versione, e quindi spingendo dallo sviluppo alla produzione. Sono stato in grado di farlo senza problemi per alcuni siti già, ma ci sono ancora alcune modifiche che devo affrontare.
Vid Luther,

1
Non sono sicuro che sia così, ma esiste un plug-in Motore WP che viene utilizzato per la migrazione del sito tra host. Si chiama Snapshot ( collegamento diretto ).
Joelhaus,

5

Sembra promettente. Stiamo lavorando su alcuni script per gestire la migrazione di alcuni dei dati, ad esempio le opzioni wp, la modifica dei percorsi nel database, una copia su supporto.

Il problema che ho è che il sito live continua a crescere mentre l'altro è in fase di sviluppo. Un sito su cui lavoriamo ha 20 post al giorno e oltre 3.000 commenti al giorno. Sono troppi dati da spostare con phpmyadmin o tramite la riga di comando. Inoltre, lo spostamento dei dati causa sempre problemi UTF per qualche motivo.

Inoltre, ora che sembra che le opzioni di menu siano memorizzate nel DB, ho ancora di più da affrontare.

Controllo tutto il mio codice in SVN e distribuisco il codice via FTP dal server (Beanstalk). Questo non mi consente di apportare modifiche al DB né di attivare nuovi plug-in.

Il mio piano adesso è quello di creare un file manifest mentre sto sviluppando per fare tutte le mie modifiche al sito live.

Ad esempio il file dovrebbe avere linee leggibili dall'uomo

Includerebbe plugin da attivare, opzioni wp da spostare, immagini da spostare, pagine da spostare. Quindi il mio plugin, rileverà il file manifest e apporterebbe tutte le modifiche al sito di staging.

Una volta che l'ho provato ed ero sicuro di aver ottenuto tutto, potevo essere sicuro che avrebbe funzionato sulla produzione.

Questo plugin è ancora solo un'idea, ma ho del codice scritto per questo.

Inoltre, se si desidera apportare modifiche solo all'URL nel proprio DB, è possibile utilizzare il seguente SQL.

basta sostituire $old$con il vecchio dominio e $new$con il nuovo

update wp_postmeta set meta_value = replace(meta_value, '$old$' , '$new$') ;
update wp_posts set post_content = replace(post_content, '$old$' , '$new$') ;
update wp_options set option_value = replace(option_value, '$old$' , '$new$') ;

2
Solo una nota, la mia chiamata sql potrebbe violare i dati serializzati. s: 14: blogs.prod.com ha la lunghezza codificata come 14. Dopo aver eseguito il codice, ora abbiamo s: 14: dev.prod.com che è corrotto. Dovrebbe essere s: 12: dev.prod.com usare con cautela.
Andrew,


3

Uso il comando export di subversion per installare i file WordPress (http://core.svn.wordpress.org/tags//) e tutti i plugin nel repository (http://plugins.svn.wordpress.org//tags //), quindi basta comprimere il tema e i plug-in personalizzati e installarli normalmente. Una volta che tutto ciò è attivo e funzionante senza contenuto, esporto il DB di prova ed eseguo una ricerca / sostituzione dell'URL E del percorso del file (memorizzato per i supporti) e importazione in un database vuoto, quindi cambio le informazioni del database in wp-config .php. In genere mi impiegano circa 10-20 minuti.


3

Normalmente accedo a phpMyadmin, carico il database e modifico i contenuti di wp_options> siteurl e wp_options> home sul dominio previsto. Se è necessario aggiornare gli URL all'interno dei post e del contenuto delle pagine, è possibile effettuare una ricerca / sostituzione dell'URL e del percorso multimediale / upload sul file .SQL prima del caricamento. È un lavoro veloce.


3

Anche se qui non mancano buone soluzioni, nello spirito della condivisione ho pensato di aggiungere il mio script di distribuzione bash alla pila: https://github.com/jplew/SyncDB

SyncDB è uno script di distribuzione bash pensato per eliminare la noia dalla sincronizzazione delle versioni locali e remote di un sito Wordpress. Consente agli sviluppatori che lavorano in un ambiente locale (ad es. MAMP) di "spingere" o "estrarre" rapidamente le modifiche da o verso il proprio server di produzione con un singolo comando terminale.

Questo script funziona bene con Mark Jaquith WP-scheletro, e imbracature mysqldump, gite rsyncper sincronizzare l'intero sito-base di dati, codice, e dei media-in due semplici passaggi:

./syncdb
git push hub master

3

Ho usato http://wordpress.org/plugins/wp-clone-by-wp-academy/ . Funziona bene!

Solo 3 passaggi:

  1. Installa il plug-in su entrambi i siti.
  2. Utilizzare il plug-in per generare un backup sul vecchio sito.
  3. Prendi l'URL di backup che ti dà e collegalo alla pagina del plug-in sul nuovo sito, premi go e la migrazione è completa in pochi secondi!

Regola automaticamente tutti gli URL, comprese le sostituzioni di stringhe serializzate, quindi nessun rischio di perdere le configurazioni dei widget, ecc.

Gli unici problemi che ho avuto sono con alcuni siti Web con database più grandi (~ 300 MB), che hanno causato i timeout di esecuzione degli script PHP durante l'importazione del backup del sito.


3

A partire dal 2017 ecco i due modi migliori che ho trovato per gestire il trasferimento di un database WordPress dallo sviluppo alla produzione.

WP Migrate DB Pro / WP Sync DB

https://wordpress.org/plugins/wp-migrate-db/

Questi plugin di WordPress ti consentono di spingere, estrarre e sincronizzare le tabelle del database tra le installazioni di WordPress. Questo è molto meglio di trovare / sostituire per molte ragioni perché:

  • Esporta il tuo database come dump di dati MySQL (molto simile a phpMyAdmin)
  • Trova e sostituisce URL e percorsi di file
  • Gestisce dati serializzati
  • Ti permette di salvarlo sul tuo computer come file SQL

Sono un fan di essere pagato per il lavoro che faccio, quindi ti consiglio di supportare il signor Brad Touesnard e acquistare una copia della licenza della cosa reale. WP Sync DB è una replica ed è sempre dietro al supporto di conseguenza. Con questo plugin il processo è semplicissimo:

  1. Installa / attiva il plug-in sul tuo host locale e ambiente di produzione
  2. Configura un trasferimento push dal tuo localhost / server di sviluppo alla tua produzione
  3. Compilare le regole per le tabelle da trasferire e definire le regole di ricerca e sostituzione da eseguire
  4. Questo è tutto!

Ricerca e sostituzione di database per database WordPress di InterconnectIT

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Questo strumento gratuito non è un plug-in, ma è installato nella directory principale dell'installazione di produzione di WordPress. Questo non è buono come WP Migrate DB Pro perché richiede alcuni passaggi manuali, ma è comunque un'ottima opzione che funziona costantemente. Quando si utilizza questo approccio, il processo è simile al seguente:

  1. Effettua il backup del tuo database locale, questo è assolutamente necessario in quanto lo reimporteremo presto
  2. Aggiungi lo script a una cartella nella directory principale dell'installazione
  3. Esegui la ricerca e la sostituzione sul tuo database
  4. Esporta il tuo database e salvalo per il tuo ambiente di produzione
  5. Reimportare il backup dal passaggio 1 per ripristinare il localhost
  6. Connettiti al tuo database di produzione ed esegui il backup (come sempre prima di fare queste cose)
  7. Importa l'esportazione che abbiamo fatto DOPO aver eseguito la routine di ricerca / sostituzione dal passaggio 4

È possibile utilizzare un approccio più rapido, ma comporta tempi di inattività per il sito di produzione che, a mio avviso, sono inaccettabili. Ecco perché lo chiamiamo produzione, giusto?


1

poiché eseguo i miei siti in IIS (eseguo anche asp.net, quindi ho bisogno di Windows) utilizzo WebPI da Msft per installare una nuova istanza, quindi copio il modello e utilizzo l'importazione / esportazione per trasferire i dati.

Non è perfetto ma il tutto richiede meno di un'ora.

Ovviamente sarebbe bello avere una soluzione con un clic, ma questo è quello che ho trovato più semplice per me.


1

Un'altra soluzione a pagamento: il framework tematico Xtreme One ha rilasciato la versione 1.2 con Xtreme Backup che consente di "esportare o importare le impostazioni di Childthemes, Layout o Widget con tutte le loro impostazioni / contenuti come file XML".


1

Un collega l'ha trovato. Concetto interessante, anche se non funziona su più server sembra. Lo sto ancora esplorando, ma sembra che potrebbe funzionare alla grande per un'istanza di messa in scena

http://code.google.com/p/deploymint/


Quattro mesi fa, non sono riuscito a far funzionare questo plugin ... Ed è ancora alla versione 0.1 in code.google
brasofilo

1

Questo potrebbe non essere stato in giro quando hai posto la domanda, ma sto usando un servizio chiamato Blogvault da un paio di mesi e lo ha fatto perfettamente. Probabilmente ho fatto oltre 50 migrazioni (attraversando domini, sottodomini e host web), non un problema e non ci vuole tempo.

È un servizio a pagamento (per dominio / mese), ma non molto.


1

RAMP è un nuovo plug-in di distribuzione dei contenuti di Crowd Favorite e sembra davvero liscio. Sono $ 250, però, quindi non l'ho ancora provato. Tuttavia, potrei pagare da solo per la quantità di tempo risparmiata, quindi lo sto prendendo in considerazione.

Il grande vantaggio che ha rispetto alla maggior parte degli altri metodi citati è che può unire in modo intelligente post, commenti, ecc. Non è solo importare un mysqldump, è più simile al controllo del codice sorgente per il database. Ad esempio, durante la distribuzione di un post, distribuirà anche i tag per quel post, se non esistono già in produzione.


RAMP è per la distribuzione dei contenuti , al contrario della distribuzione del codice , ma sono d'accordo, sembra superbo. Ora hanno una demo di RAMP impostata in modo da poter provare le funzionalità.
Emzo,

La domanda riguardava la distribuzione del contenuto , non la distribuzione del codice, e ho iniziato la mia risposta dicendo "RAMP è un nuovo plugin di distribuzione del contenuto ..."
Ian Dunn,

1

Lasciami regalare uno dei miei preferiti :-)

// proven local<->live codefork (covers local network testing, i.e. from mobile devices):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // simple localhost (IPv4 IPv6)
              $_SERVER['HTTP_HOST'] == 'local.workblog'          || // call by local name (adjust)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // (mobile) device in local network

$table_prefix  = NULL; // ensure scope

if ( $GLOBALS['is_local'] )  // LOCAL fork ------------------------
{
        ....
}
else  // STAGE/LIVE fork -------------------
{

... e poi lavori da lì. DB_NAME, DB_USER ... table_prefix. Personalmente accendo ALTERNATE_WP_CRON su local (per evitare alcuni fastidiosi avvisi ), WP_DEBUG su entrambi (se non sei uno sviluppatore) o solo live (se lo sei), anche un altro ini_set('display_errors', '0');live potrebbe fare del bene, infine, come menzionato sopra: WP_HOME e WP_SITEURL al rispettivo URL locale / effettivo.

Praticamente tutto, nulla è rimasto al di sopra del classico WordPress 'Questo è tutto, smetti di modificare!' linea...

Il 192.168. parte consente di eseguire alcuni test locali (ad esempio da pad o telefoni) all'interno della rete locale)

$ GLOBALS ['is_local'] può tornare utile anche nello sviluppo del tuo tema, per un output di debug aggiuntivo, ecc ...


1
Puoi usare WordPress Skeleton wp-config.php che imposta una WP_LOCAL_DEVcostante per ottenere qualcosa di simile
icc97

1

Sto usando il plugin backupbuddy per un po 'di tempo. Ti consente di effettuare un backup del database e di tutti i file, scaricarlo come zip o inviarlo direttamente a un altro server tramite FTP. Fa anche trovare e sostituire l'URL per te. Di solito mi ci vogliono circa 5 minuti per completare l'intero processo. E poiché tutti i file sono compressi, il processo di upload / download è molto più veloce. E no, non lavoro per loro, ma questo plugin ha reso molto più semplice l'intero processo.


1

Un altro strumento utile per gestire le migrazioni dei server per i siti è l'interfaccia della riga di comando di WordPress, questo articolo offre una buona panoramica di ciò che può fare, ma in particolare la sezione "Cerca e sostituisci" è utile per trovare tutti i riferimenti all'URL del sito vecchio / di sviluppo :

Gestione avanzata di WordPress con WP-CLI



0

Se stai cercando di ottenere una sincronizzazione continua, ti suggerisco di utilizzare rsync insieme a un cron job personalizzato per riscrivere qualsiasi URL o dati specifici del sito.


0

Dopo aver seguito questa risposta per un po 'ho creato il mio piccolo plugin - Pitta Migration . I motivi sono:

  1. Di tutte le idee provate qui - la più semplice è l' opzione WP_HOMEeWP_SITEURL
  2. Quindi li utilizzo per impostare i due wp_optionsURL corrispondenti , che copre quando plugin / temi li ignorano
  3. Questo mi dà il 100% di fiducia in ciò che viene modificato nel mio database
  4. Funziona anche su più piattaforme (tutti quegli script bash non funzionano bene su Windows)
  5. È facile capire cosa sta facendo il plugin
  6. Non c'è alcuna configurazione oltre le due costanti: esegui un mysqldump e un'importazione mysql nel tuo database locale e il plugin vede che la costante e la tabella differiscono e le aggiorna in modo che corrispondano
  7. Nessuna ricerca di testo e sostituzione
  8. Nessuna possibilità di rovinare il tuo database: utilizzo l'oggetto Database di WordPress per fare due aggiornamenti e niente di più
  9. Funziona bene con cose come WordPress Skeleton in cui puoi avere tutto nel controllo del codice sorgente e impostare una configurazione locale
  10. L'ho messo nella directory dei plugin di WordPress e su Github in modo che sia gratuito, completamente open source, facile da fork e facile da installare
  11. Una volta installato, puoi dimenticartene e dovrebbe "funzionare" - ti dà un piccolo preavviso per dire che il database è stato modificato
  12. Dovrebbe funzionare con qualsiasi processo di backup / FTP / ripristino

0

Secondo me il modo più semplice che seguo è il trasferimento manuale. Basta copiare la cartella wp-content e il file wp-config.php sul nuovo host. Esporta il database dal vecchio host e importalo in un nuovo database di nuovo host.

Nel nuovo database host vai alla tabella delle opzioni wp e lì cambia l'URL del sito e l'URL del blog in Nuovo indirizzo host dal vecchio host. come da http: // localhost / wp a http://example.com

Ora nel file wp-config basta cambiare le informazioni del database e dell'utente con le nuove informazioni sull'host.

Ora accedi al nuovo wp-admin e vai alle impostazioni e salva il permalink.

Hai fatto. Penso che questo sia semplice senza usare alcun plugin.

Ho provato diversi tipi di plugin e tutti questi hanno molti tipi di problemi ..

Quindi preferisco questo semplice trasferimento manuale che è più facile penso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.