Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Clone WordPress in Linux

by
Difficulty:IntermediateLength:LongLanguages:

Italian (Italiano) translation by Loris Pizii (you can also view the original English article)

Final product image
What You'll Be Creating

Duplicazione di WordPress non sembra mai facile

Spesso mi piace lanciare un nuovo sito di WordPress basato su un sito esistente, come un modello. Le configurazioni per temi, plugin e le impostazioni possono essere molto utile per cominciare, al contrario di un'installazione pulita dove devi ripetere tutto dall'inizio.

Nella costruzione di un'immagine di App da rivendere all'oceano digitale, ho camminato attraverso la costruzione di una gocciolina di WordPress installabile, pre-configurata e pre-ottimizzata. In sostanza, è un'immagine digitale dell'oceano che può lanciare un sito WordPress a pieno carico in pochi minuti. Ma, più spesso, voglio aggiungere un sito WordPress a uno dei miei server pre-esistenti.

Ci sono un certo numero di modi per fare questo, ma trovo spesso che richiedono un approccio specifico e dettagliato, che mi sembra di dover imparare di nuovo ogni volta. Ho deciso che era tempo di venire con uno script di shell di Linux che avrebbe fatto tutto in pochi minuti per me.

In questo tutorial, vi guiderò attraverso la mia ricerca e risultante script clone per WordPress. Spero che vi piaccia — ho pensato ha funzionato piuttosto bene quando ero finito con esso.

Prima che otteniamo cominciati, si prega di ricordare che tenta di partecipare alle discussioni qui sotto. Se avete una domanda o un suggerimento di argomento, si prega di postare un commento qui sotto o contattatemi su Twitter @reifman. Potete anche scrivermi direttamente. Mi aspetto che molti di voi avranno meglio idee e miglioramenti per questo script. Mi piacerebbe sentire da voi.

Altri approcci alla migrazione di WordPress

Spesso è possibile avviare un nuovo sito Web di migrazione uno esistente in un nuovo server, essenzialmente copiarlo e costruzione sulla copia lasciando intatto il sito di origine. Ci sono una serie di approcci a questo.

In WordPress in movimento per una nuova pubblicazione di Server con WordPress, ho scritto circa usando il plugin duplicatore per farlo — ma ho trovato il processo per essere ingombrante. Refamiliarizing me stesso con duplicatore ogni volta che ho bisogno di spostare un sito è stato anche difficile.

Recentemente, ho scritto su questo in backup e ripristinare il tuo sito WordPress con CodeGuard per Envato Tuts +. È un servizio che rende questo processo un po' più facile. E, presto, come per semplificare la gestione di più siti WordPress sarà rilasciato, che descrive una serie di potenti vantaggi nell'utilizzo di ManageWP. Ha una funzione di clonazione, ma richiede FTP — per motivi di sicurezza, evitare in esecuzione FTP sul mio server.

C'è anche la serie Envato Tuts + due parti di Rachel McCollin: spostare s: An Introduction and Moving WordPress: uso dei plugin per spostare il tuo sito. E c'è questo tutorial sul WPBeginner che utilizza BackupBuddy. Infine, WPClone non richiede FTP ma richiede un pulito WordPress installare per costruire su.

Si può imparare molto da tutti questi tutorial e servizi, ma volevo vedere se potevo creare uno script da linea di comando che clonato un sito WordPress più rapidamente e facilmente, ogni volta.

Pianificazione dello Script

Per scrivere questo tutorial, ho contato molto su opere precedenti di altri Jumpstart mia conoscenza di script bash e manipolazione sito WordPress. Non ho mai considerato un esperto amministratore di sistema Linux. In definitiva, ho deciso di costruire il mio script clone in cima WordPress Bash Script di Brian Gallagher di installazione.

Nota: Questi sono gli script di installazione basata su Debian; Altre versioni di Linux come RedHat e CentOS hanno percorsi diversi per Apache e diverse utilità.

Ecco la descrizione di Gallagher del suo script di base:

Download ultima versione di WP, aggiornamenti wp-config con nome DB fornito dall'utente, username e password, crea e di CHMOD carica dir, copia tutti i file nella dir principale da che si esegue lo script, quindi Elimina stesso!

C'è un sacco di script ben organizzata qui per cominciare, ma volevo fare qualcosa che potrebbe clonare un sito attivo. Rivediamo l'architettura di una tipica configurazione di WordPress.

I componenti iniziali di un sito WordPress

Una tipica installazione di WordPress ha quattro componenti principali per la clonazione:

  1. Albero di directory del sito
  2. Database
  3. Configurazione del server Web, ad esempio file conf di Apache
  4. Mappatura del dominio

Ci sono anche informazioni, accesso e sicurezza impostazioni di che avremo bisogno:

  • Password e account di amministrazione del server
  • Password e nome utente del server MySql
  • Directory di origine del sito
  • File di configurazione del server del sito web
  • Nome del database, nome utente e password

Ecco che cosa abbiamo bisogno di specificare per il sito clonato:

  • Directory di destinazione del sito clonato
  • Nome database clonato, la username e la password
  • File di configurazione clonata siti web server

Ciò che lo Script deve eseguire

  • Acquisire tutte le impostazioni tramite variabili di configurazione o l'input dell'utente.
  • Copiare la directory del sito e ripristinarlo in una directory di destinazione.
  • Esportare il database di origine e importarlo in un database di destinazione.
  • Assicurarsi che le autorizzazioni appropriate su queste directory.
  • Copiare il file di configurazione del server e aggiornare le impostazioni del dominio e la directory.
  • Ricaricare il server web.

Manualmente, dovremo aggiornare il DNS per il nuovo dominio di destinazione. Si raccomanda di creare record DNS prima di iniziare così sono pronti, una volta che il tuo sito è clonato. Non c'è niente come la clonazione di un sito e di non essere in grado di verificare il dominio nome perché stai aspettando che il DNS.

L'approccio dello Script clonazione

Ora, siamo pronti a camminare attraverso il funzionamento dell'architettura dello script. Ancora una volta, sfruttato lo script di installazione di WordPress di Gallagher per cominciare, e hai bisogno di quella linea di bash iniziale nella parte superiore:

Preparare le impostazioni DNS

Prima di duplicare un sito, è necessario configurare il DNS per il sito clonato. È possibile leggere informazioni sulla configurazione di DNS per un nuovo sito di WordPress qui. Anche io sono entusiasta di questo Envato Tuts + tutorial, un'introduzione all'apprendimento e utilizzo dei record DNS.

Fondamentalmente, è necessario creare un record o CNAME che indirizza il tuo clone desiderato URL al server ci stiamo duplicando il.

Impostazione delle autorizzazioni

Sul mio server, sto creando uno script di bash chiamato clonewp.sh. Avrà bisogno delle autorizzazioni eseguibile:

Poi, una volta che è completo, è possibile eseguirlo come questo:

Vi consiglio di esecuzione dello script come sudo, in modo da non incorrere in problemi di autorizzazione file.

Impostazione di valori predefiniti

Per scopi di test, ho creato la possibilità di pre-caricare lo script con le impostazioni predefinite. Lo ha aiutato in esecuzione attraverso test ripetutamente senza dover digitare tutto più e più volte. Ho anche pensato che potrebbe essere utile per chi vuole più successivamente modificare lo script o usarlo in altri modi.

Qui ci sono tutte le impostazioni predefinite:

So che sembra che piace molto, ma mi è sembrato utile avere un master MySQL user e password per i backup di database, creazione di database e le importazioni. Eppure era anche utile avere l'utente del database del sito e la password per impostare i privilegi di database di destinazione e la ricerca e la sostituzione nel file wp-config. php. Rende il massimo molto senza soluzione di continuità del processo di duplicazione.

Ho usato il timestamp di ora per assicurarsi che gli archivi che creiamo sono unici.

Richiedere le impostazioni

Il codice riportato di seguito viene illustrato il valore predefinito per l'utente e permette loro di accettarlo (premendo ritorno) o sostituirlo:

Una volta che abbiamo raccolto tutte le impostazioni da parte dell'utente, chiediamo se desiderano iniziare:

Copiare la struttura di Directory

Ora le cose si muovono un po' più veloce. Creiamo gli archivi del sito di origine, creare una directory di destinazione ed estrarre il tarball di ci:

Abbiamo anche eseguito le autorizzazioni di file standard per WordPress per assicurarsi che tutto è impostato correttamente e in modo sicuro:

Aggiornare il file WP-Config.

Quindi, utilizziamo perl per cercare e sostituire l'autenticazione del database di origine con le informazioni del database di destinazione:

Aggiungo anche l'impostazione di trasferirsi alla fine del file. Se si desidera, è possibile sostituire questo con impostazioni statiche di WP_HOME e WP_SITEURL.

Copiare il Database

Successivamente, abbiamo dump del database, creare un nuovo database con autorizzazioni fornito dall'utente e quindi importare il database ad esso:

Ancora una volta, mi è sembrato migliore all'utente l'autenticazione del MySQL Maestro per queste attività, configurare le impostazioni del database basate sul sito di origine e le impostazioni di singolo sito clone.

Copiare la configurazione del Server Web

Infine, siamo pronti a concludere le cose e premere il pulsante di lancio. È raro che vedere questi tipi di script gestire il passaggio aggiuntivo per la configurazione del server web. Così, ho voluto fare anche questo.

Ho copiato il file Apache. conf del sito origine sopra in un nuovo file. conf per il clone. Ho usato perl per una sostituzione di stringa per i domini e i percorsi di directory. Quindi, ho attivato il sito con Apache e ricaricato il server web:

E questo è tutto. Ecco quello che sembra una prova generale dello script nella vita reale:

Il mio piccoli siti WordPress, duplicazione ha preso solo 30-90 secondi!

Stampa fine

Ci sono un paio di cose più che avrai bisogno di sapere.

Percorso di accesso diretto in un primo momento

In primo luogo, per accedere al tuo sito clonato, è necessario utilizzare il percorso di wp-login. php invece di wp-admin che reindirizza all'URL del sito di origine, ad esempio http://clone.io/wp-login.php, come illustrato di seguito:

Clone WordPress Use the wp-login php path

Cambiando rispetto ai domini

Dal WordPress hardcodes molto del tuo dominio di origine nel database, ho trovato che utilizzando l'impostazione di DELOCALIZZARE in wp-config. php rende facile di aggiornare questo attraverso generale>; Impostazioni. Si salva solo il modulo con il nuovo URL di destinazione:

Clone WordPress General Domain Settings

Una volta che hai salvato l'URL di destinazione clonato, è possibile rimuovere manualmente l'impostazione di trasferirsi da wp-config. php.

Tuttavia, un collega suggerisce che si desideri utilizzare uno strumento come di InterconnectIT ricerca e sostituzione per i database di WordPress. È anche stato documentato presso Envato Tuts + in migrazione WordPress attraverso host, server e URL.

Lo Script finale

Ecco lo script finale per wpclone.sh—feel libero di modificare le impostazioni predefinite:

Se avete suggerimenti e personalizzazioni, per favore fatemelo sapere. Postare i tuoi pensieri qui sotto nei commenti.

Pulitura per esteso di test

Le seguenti righe potrebbero essere utile a voi per l'eliminazione e annullamento di siti di test che si clonano. È possibile personalizzarlo alle vostre esigenze:

Cambiare le chiavi di sicurezza in Wp-config. php

È possibile proteggere anche meglio il tuo nuovo sito di WordPress sostituendo manualmente le chiavi di autenticazione e i sali all'interno wp del sito di destinazione-config. php:

Si può solo visitare https://api.wordpress.org/secret-key/1.1/salt/ e tagliare e incollarli nel file wp-config. php:

WordPress Authentication Key and Salt Generator

Ora se sei un purista di script Linux, farò aggiornare WordPress Bash Script di Gallagher di installazione. Suo script copiato sopra il default WordPress wp-config. php così avrebbe stringhe sorgente prevedibile da sostituire con tasti suo script generato:

Non ho mai scritto su un oggetto regex sostituire i valori di chiave nel file wp-config. php dinamici preesistenti dei nostri siti di origine. Se si decide di, ti invitiamo a condividere nei commenti e grazie in anticipo.

Domande?

Ho apprezzato molto per far funzionare questo script. O almeno dovrei dire che mi è piaciuto in esecuzione che quando mi è stato fatto. Avrei voluto che avevo creato molto tempo fa come è incredibilmente efficace ed efficiente. Ho potuto clonare piccoli siti WordPress e li hanno in esecuzione sul mio server in circa 60 secondi. Nessuna delle altre opzioni plugin o duplicazione sono così fluida.

Se avete domande, lascia un commento qui sotto. In alternativa, è possibile contattare me su Twitter @reifman o scrivermi direttamente. Si prega di consultare la mia pagina di istruttore Envato Tuts + per vedere altri tutorial che ho scritto, come la mia serie di avvio (Startup il tuo edificio con PHP).

Link correlati

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.