Come migrare il sito secondario da un sito di sviluppo a un sito di produzione


12

Sto cercando il modo migliore e più sicuro per sviluppare localmente un numero di siti secondari utilizzando il sito multiplo e spostandoli nell'ambiente di produzione quando sono pronti.

Ho già migrato l'installazione completa su più siti con il primo sito secondario che è ora attivo. Preferirei sviluppare gli altri siti sul server locale, quindi lascio da solo il server di produzione, ma ovviamente non riesco più a eseguire una migrazione completa.

Ho cercato una soluzione, ma tutto quello che ho trovato riguarda lo spostamento di un singolo sito in un sito multiplo o viceversa, senza "spostare il sito secondario da sito multiplo a sito multiplo".

Vorrei mantenere tutto: impostazioni, widget e così via.


1
Penso che il plug-in BackupBuddy commerciale sia in grado di farlo, ma sarei interessato a vedere risposte più generiche a questo.
Rarst

A causa delle stringhe serializzate nel database non è così facile farlo. Finora non ho visto un plugin per una migrazione pura, ma assolutamente qualcosa che dovrebbe essere fatto. L'unica cosa consisteva nello spostare "la maggior parte" di parti di un blog in un altro è tramite il meccanismo di esportazione / importazione XML, ma in seguito è comunque necessario correggere molti percorsi.
2ndkauboy,

1
L'opzione migliore che hai è farlo con una query sql diretta. L'ho fatto più di una volta e funziona bene se stai abbastanza attento.
krembo99,

@ krembo99, potresti spiegare un po 'di più la tua tecnica?
molokom

@Rarst, per quanto riguarda BackupBuddy, questo proviene dalle loro FAQ: "No. Il supporto Multisito per BackupBuddy è sperimentale. Non è raccomandato per i siti di produzione e non è ufficialmente supportato."
molokom

Risposte:


4

Questo può essere un po 'noioso, ma speriamo che questo aiuti. Meno cambia da un ambiente all'altro, meno doloroso sarà questo processo. In particolare, se il dominio, l'ID del sito, i percorsi dei file rimangono gli stessi, meno doloroso sarà questo processo.

Questo post presuppone una certa conoscenza della gestione del database. Non è un passo per passo completo perché dovresti cercare nei forum e possibilmente creare un thread specifico per qualsiasi passaggio tu abbia problemi, ad esempio, se hai bisogno di aiuto con l'esportazione di una tabella di database.

La cosa più importante da fare è eseguire il backup dell'intero database e dei file sia per il sito di sviluppo locale sia per la nuova posizione nel caso in cui qualcosa vada storto. Aspettati che qualcosa vada storto. Rimani piacevolmente sorpreso se non lo fa.

Lo spostamento dei file dei temi dovrebbe essere piuttosto semplice. Carica i tuoi file di temi nella directory wp-content / themes e attivali come al solito. Suppongo che questo sia un tema condiviso a cui tutti i blog hanno accesso.

Carica i file dei plugin su wp-content / plugins nella nuova posizione. Non attivarli ancora.

Si noti che qualsiasi contenuto esclusivo del blog che si sta migrando si troverà in una directory simile a wp-content/blogs.dir/2/filesdove 2 è l'ID del sito. Se è possibile mantenere questo ID sito nella nuova posizione, dovrebbe aiutare a ridurre al minimo i conflitti nel database dopo la migrazione nella nuova posizione. Altrimenti, dovrai aggiornare il tuo database per riflettere il nuovo percorso.

Dovrai esportare le tabelle multisito relative al blog che stai provando a migrare e importarle nella nuova posizione. Dovrai modificare le tabelle in cui sono archiviati i dati relativi al blog che stai migrando. Assicurarsi che il prefisso di queste tabelle sia lo stesso nella nuova posizione.

Ad esempio, la tabella wp_blogs per il tuo blog contiene l'id del blog, l'ID del sito, il dominio e il percorso che consentono al multisito di WordPress di riconoscere e lavorare con il tuo blog. Modifica uno di questi che non sono più corretti per riflettere la nuova posizione, ma ti preghiamo di leggere il resto di questo post prima di provare a farlo.

Vedi Panoramica della tabella multisito

Per migrare le tue impostazioni di WordPress e plugin per il blog da trasferire , dovrai disattivare tutti i plugin localmente, quindi esportare le tabelle specifiche del tuo sito (riferimento codice), comprese quelle per i tuoi plugin. Importare queste tabelle nel database della nuova posizione.

Assicurarsi che il nuovo percorso utilizzi lo stesso prefisso del database delle tabelle che si stanno importando. Il prefisso conterrà l'id del sito per il tuo blog e avrà un aspetto simile wp_2_options, wp_2_posts, wp_2_postmeta.
Vedi Exploring WordPress Multisite di Lisa Sabin-Wilson

Suppongo che tu sappia come importare / esportare tramite phpmyAdmin o con il comando mysqldump nel tuo terminale. Questo è un po 'oltre lo scopo di questo post, ma ecco un esempio di esportazione che dovrebbe aiutare.

Da come si mysqldump tabella specifica (s)? (Sintassi modificata leggermente per essere più chiara.):

Se si stanno eseguendo il dumping delle tabelle t1, t2 e t3 dal database denominato mydb

mysqldump -u <username> -p <password> mydb t1 t2 t3 > mydb_tables.sql

Prima di attivare i plug-in sul nuovo sito, vai alle impostazioni del permalink in admin cp e salva le impostazioni per aggiornare i file del database nel nuovo URL del sito. Attiva i tuoi plugin e vedi se ci sono problemi.

Un problema che potresti incontrare è la serializzazione dei dati nelle tue tabelle.

"[...] I riferimenti al vecchio nome di dominio o posizione rimarranno nel database e ciò può causare problemi con i collegamenti o la visualizzazione dei temi.

Se esegui una ricerca e sostituisci l'intero database per modificare gli URL, puoi causare problemi con la serializzazione dei dati, a causa del fatto che alcuni temi e widget memorizzano valori con la lunghezza del tuo URL contrassegnato. " Quando il tuo nome di dominio o URL Modificare

Tieni presente che la serializzazione dei dati può causare un conflitto anche nelle tabelle del database relative ai tuoi plug-in. Anziché eseguire una ricerca manuale e sostituire l'URL memorizzato nel database, utilizzare la ricerca del database e sostituire lo script consigliato nel collegamento al codice precedente. Se nel database sono presenti solo pochi casi di serializzazione, puoi semplicemente modificarli manualmente tramite phpMyAdmin o qualunque sia la tua preferenza per la gestione del database.

Un altro problema che potresti riscontrare è che eventuali percorsi di file errati memorizzati nelle tabelle del database dovranno essere aggiornati per riflettere la nuova posizione. Questo potrebbe essere il caso delle directory multimediali o delle directory utilizzate dai plug-in a seconda di come è stato progettato il plug-in. Ancora una volta, ti consigliamo di utilizzare la ricerca e sostituire lo script per assicurarti che non vi siano conflitti di serializzazione durante l'aggiornamento dei percorsi dei file. In alternativa, puoi consultare le tue tabelle e aggiornarle manualmente.


Grazie! Quindi sembra che non ci sia alcun beneficio reale nel lavorare in questo modo: è un sacco di dolore. Sarebbe meglio sviluppare un singolo sito locale e migrare nell'ambiente multisito?
molokom

È possibile che si verifichino molti degli stessi problemi, ma dovrebbero essere necessarie meno tabelle per la migrazione. Giusto per darti un'idea, ecco una guida decente per quella chiamata Sposta un blog esistente nel sito multiplo di WordPress . Lascio a te determinare quale sia il più efficiente per te come sviluppatore.
Iyrin,

0

Non potresti utilizzare le funzionalità integrate di esportazione e importazione di WordPress? Quindi si tratta solo di spostare il tema da un'installazione all'altra tramite FTP. Va abbastanza veloce e puoi migrare un sito tra installazioni in meno di 5 minuti.

Puoi sincronizzare le credenziali dell'utente usando un elegante plug-in chiamato User Syncronization .

Non l'ho usato, ma ManageWP ha uno strumento di distribuzione e clonazione facile da usare per passare da un sito esistente a uno nuovo ... vale la pena esaminarlo.

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.