Klon WordPress i Linux

Hva du skal skape

Dupliserende WordPress virker aldri lett

Jeg liker ofte å lansere et nytt WordPress-nettsted basert på et eksisterende nettsted, som en mal. Konfigurasjonene for temaer, plugins og innstillinger kan være veldig nyttige å begynne med, i motsetning til en ren installasjon der du må gjenta alt fra begynnelsen.

I å bygge en App Image å videreselge på Digital Ocean, gikk jeg gjennom konstruksjonen av en installerbar, forhåndskonfigurert og preoptimalisert WordPress-dråpe. I hovedsak er det et Digital Ocean-bilde som kan starte et fullt lastet WordPress-nettsted på få minutter. Men oftere vil jeg legge til et WordPress-nettsted til en av mine eksisterende eksisterende servere.

Det finnes en rekke måter å gjøre dette på, men jeg finner ofte at de krever en spesifikk og detaljert tilnærming som jeg synes å må gjenta hver gang. Jeg bestemte meg for at det var på tide å komme opp med et Linux-skript som ville gjøre alt om noen minutter for meg. 

I denne veiledningen vil jeg gå gjennom min forskning og resulterende klon script for WordPress. Jeg håper du liker det - jeg trodde det fungerte ganske bra da jeg var ferdig med det.

Før vi begynner, vær så snill og husk, jeg prøver å delta i diskusjonene nedenfor. Hvis du har et spørsmål eller et emneforslag, vennligst legg inn en kommentar nedenfor eller kontakt meg på Twitter @ reifman. Du kan også sende meg e-post direkte. Jeg forventer at mange av dere vil få bedre ideer og forbedringer for dette skriptet. Jeg vil sette pris på å høre fra deg.

Andre tilnærminger til WordPress Migration

Ofte kan du starte et nytt nettsted ved å migrere en eksisterende til en ny server, i hovedsak å kopiere den, og bygge på kopien mens du forlater kildeområdet intakt. Det er en rekke tilnærminger til dette.

I Moving WordPress til en ny serverpublisering med WordPress skrev jeg om å bruke duplikatorpluginet for å gjøre dette, men jeg har funnet prosessen å være tungvint. Fornyelse av meg selv med Duplicator hver gang jeg trenger å flytte et nettsted har også vært vanskelig. 

Nylig skrev jeg om dette i sikkerhetskopiering og gjenoppretting av ditt WordPress-nettsted med CodeGuard for Envato Tuts +. Det er en tjeneste som gjør denne prosessen litt enklere. Og snart, hvordan å forenkle administrere flere WordPress-nettsteder vil bli utgitt, og beskriver en rekke kraftige fordeler ved å bruke ManageWP. Den har en kloning-funksjon, men det krever FTP-av sikkerhetsgrunner, jeg unngår å kjøre FTP på serverne mine.

Det er også Rachel McCollins todelte Envato Tuts + -serie: Flytting av WordPress: En introduksjon og flytting av WordPress: Bruk av plugger for å flytte nettstedet ditt. Og det er denne opplæringen på WPBeginner som bruker BackupBuddy. Endelig krever WPClone ikke FTP, men krever en ren WordPress installasjon for å bygge videre.

Du kan lære mye av alle disse veiledningene og tjenestene, men jeg ville se om jeg kunne lage et kommandolinjeskript som klonte et WordPress-nettsted raskere og enkelt, hver gang.

Planlegger skriptet

For å skrive denne opplæringen, stolte jeg mye på tidligere arbeider av andre for å hoppe på min kunnskap om bash-skript og WordPress-sidehåndtering. Jeg har aldri betraktet meg som en ekspert Linux systemadministrator. Til slutt bestemte jeg meg for å bygge kloneskriptet mitt på Brian Gallaghers WordPress Bash Install Script. 

Merk: Dette er Debian-baserte oppsettskript; Andre smaker av Linux som RedHat og CentOS har forskjellige veier for Apache og forskjellige verktøy.

Her er Gallaghers beskrivelse av sitt grunnskript:

Nedlastinger nyeste WP-versjonen, oppdateringer wp-config med brukeren levert DB navn, brukernavn og passord, oppretter og CHMODs opplastinger dir, kopierer alle filene til roten du kjører skriptet fra, og sletter deretter!

Det er mye godt organisert skript her til å begynne med, men jeg ønsket å lage noe som kunne klone et aktivt nettsted. La oss se på arkitekturen i en typisk WordPress-konfigurasjon.

De første komponentene til et WordPress-nettsted

En typisk WordPress-installasjon har fire primære komponenter for kloning:

  1. Nettstedets katalogtre 
  2. database 
  3. Webserver konfigurasjon, f.eks. Apache conf-fil
  4. Domenekartlegging

Det er også informasjon, tilgang og sikkerhetsinnstillinger som vi trenger:

  • Serveradministrasjonskonto og passord
  • MySql server brukernavn og passord
  • Nettstedets kildekatalog
  • Nettstedets webserver konfigurasjonsfil
  • Databasens navn, brukernavn og passord

Her er det vi må spesifisere for det klonte området:

  • Klonet stedets målkatalog
  • Klonet databasens navn, brukernavn og passord
  • Cloned Sites 'webserver konfigurasjonsfil

Hva Skriptet trenger å gjøre

  • Hent alle innstillingene gjennom konfigurasjonsvariabler eller brukerinngang.
  • Kopier nettstedskatalogen og gjenopprett den til en målkatalog.
  • Eksporter kildedatabasen og importer den til en måldatabase.
  • Sørg for de riktige tillatelsene på disse katalogene.
  • Kopier serverkonfigurasjonsfilen og oppdater domenet og kataloginnstillingene.
  • Last inn webserveren.

Manuelt må vi oppdatere DNS for det nye måldomenet. Jeg anbefaler å opprette DNS-poster før du begynner, så de er klare når nettstedet ditt er klonet. Det er ingenting som å klone et nettsted og ikke være i stand til å teste domenenavnet fordi du venter på DNS.

Tilnærmingen til kloningskriptet

Nå er vi klare til å gå gjennom hvordan skriptets arkitektur fungerer. Igjen grep jeg Gallaghers WordPress installasjonsskript til å begynne med, og du trenger den første bash-linjen øverst:

#! / bin / bash -e # Klon et WordPress-nettsted via Bash-skriptet klart ekko "================================ ==================== "ekko" Clone WordPress Script "echo" ===================== ==============================" 

Forbereder DNS-innstillingene dine

Før du dupliserer et nettsted, må du konfigurere DNS for det klonte området. Du kan lese om DNS-konfigurasjon for et nytt WordPress-nettsted her. Jeg er også spent på denne Envato Tuts + opplæringen, En introduksjon til læring og bruk av DNS-poster.

I utgangspunktet må du opprette en A-plate eller CNAME som ruter ønsket klonadresse til serveren vi dupliserer på.

Innstilling av tillatelser

På min server lager jeg et bash script som heter clonewp.sh. Det vil trenge kjørbare tillatelser:

chmod + x clonewp.sh

Så, når det er ferdig, kan du kjøre det slik:

sudo bash clonewp.sh

Jeg anbefaler at du kjører skriptet som sudo, slik at du ikke får problemer med filtillatelse.

Angi standardinnstillinger

For testing har jeg opprettet muligheten til å forhåndsbehandle skriptet med standardinnstillinger. Det hjalp meg med å løpe gjennom tester gjentatte ganger uten å måtte skrive alt om og om igjen. Jeg trodde også at det kan være nyttig for folk som senere vil endre skriptet eller bruke det på andre måter.

Her er alle standardinnstillingene:

# Angi standardinnstillinger (nyttig for testing) default_mysql_user = $ "root-admin" default_mysql_pass = $ "super-strong-passord" default_source_domain = $ "gardening.io" default_target_domain = $ "cycling.io" default_source_directory = $ "/ var / www / gardening "default_target_directory = $" / var / www / sykling "default_apache_directory = $" / etc / apache2 / nettsteder tilgjengelig "default_source_conf = $" gardening.conf "default_target_conf = $" cycling.conf "default_source_dbname = $" hagearbeid " default_source_dbuser = $ "user_for_garden" default_source_dbpass = $ "pwd_garden" default_target_dbname = $ "sykling" default_target_dbuser = $ "user_for_cycling" default_target_dbpass = $ "pwd_cycling" NOW = $ (dato + "% Y-% m-% d-% H% M ") 

Jeg vet at det virker som mye, men jeg fant det nyttig å ha en mester MySQL bruker og passord for databasekoblinger, databaseopprettelse og import. Likevel var det også nyttig å ha nettstedsspesifikke database bruker og passord for å sette mål database privilegier og søke og erstatte i wp-config.php filen. Det gjør den ultimate kloningsprosessen veldig sømløs.

Jeg brukte NOW tidsstempel for å sikre at arkivene vi lager er unike.

Be om innstillingene

Følgende kode viser standard til brukeren og tillater dem å akseptere den (trykke på retur) eller erstatte den:

# Forespørsel Kildeinnstillinger les -p "Kilde domene (f.eks." $ Default_source_domain "):" source_domain source_domain = $ source_domain: - $ default_source_domain echo $ source_domain read -p "Kildekatalog (ingen skråstrekk f.eks." $ Default_source_directory "): "source_directory source_directory = $ source_directory: - $ default_source_directory ekko $ source_directory read -p" Kilde database navn (f.eks. "$ default_source_dbname"): "source_dbname source_dbname = $ source_dbname: - $ default_source_dbname ekko $ source_dbname read -p" Kilde Databasebruker (f.eks. "$ Default_source_dbuser"): "source_dbuser source_dbuser = $ source_dbuser: - $ default_source_dbuser echo $ source_dbuser read -p" Source Database Pass (f.eks. "$ Default_source_dbpass"): "source_dbpass source_dbpass = $ source_dbpass: default_source_dbpass echo $ source_dbpass # Request Source Settings les -p "Source Conf File (f.eks." $ default_source_conf "):" source_conf source_conf = $ source_conf: - $ default_source_conf ekko $ source_conf # Request Targe t Innstillinger les -p "Target Domain (f.eks. "$ default_target_domain"): "target_domain target_domain = $ target_domain: - $ default_target_domain ekko $ target_domain read -p" Målkatalog (ingen skråstrekk f.eks. "$ default_target_directory"): "target_directory target_directory = $ target_directory: - $ default_target_directory echo $ target_directory read -p "Target Database Name (f.eks." $ default_target_dbname "):" target_dbname target_dbname = $ target_dbname: - $ default_target_dbname echo $ target_dbname read -p "Måldatabasebruker target_dbuser = $ target_dbuser: - $ default_target_dbuser echo $ target_dbuser read -p "Måldatabase Pass (f.eks." $ default_target_dbpass "):" target_dbpass target_dbpass = $ target_dbpass = $ default_target_dbpass echo $ target_dbpass read -p "Mål Conf File (f.eks. "$ default_target_conf"): "target_conf target_conf = $ target_conf: - $ default_target_conf ekko $ target_conf

Når vi har samlet alle innstillingene fra brukeren, spør vi om de ønsker å begynne:

ekko "Klone nå? (y / n)" read-run hvis ["$ run" == n]; så avslutte annet ekko "=================================================== ====== "echo" WordPress Cloning er begynnelsen "echo" =================================== =================" 

Kopierer Directory Tree

Nå går det litt raskere. Vi lager tarballs av kildesiden, lager en målkatalog og pakker ut tarballen der:

#backup source_directory cd $ source_directory # add -v alternativ til disse hvis du vil se verbose filoppføringer tar -czf source_clone_ $ NOW.tar.gz. #unzip klon i målkatalogen mkdir -p $ target_directory tar -xzf source_clone_ $ NOW.tar.gz -C $ target_directory #remove tarball av kilde rm source_clone_ $ NOW.tar.gz cd $ target_directory 

Vi kjører også standard filtillatelser for WordPress for å sikre at alt er satt opp riktig og sikkert:

# Tilbakestill katalog Tillatelser finne $ target_directory -type d -exec chmod 755  \; finn $ target_directory -type f -exec chmod 644  \; 

Oppdater WP-Config-filen

Deretter bruker vi perl til å søke og erstatte kildedatabaseautentisering med destinasjonsdatabaseinformasjonen:

#set database detaljer med perl finne og erstatt perl -pi -e "s / $ source_dbname / $ target_dbname / g" wp-config.php perl -pi -e "s / $ source_dbuser / $ target_dbuser / g" wp-config. php perl -pi-e s / $ source_dbpass / $ target_dbpass / g "wp-config.php echo" definere ('RELOCATE', true); " | tee -a wp-config.php #echo "define ('WP_HOME', 'http: // $ target_domain');" | tee -a wp-config.php #echo "definere ('WP_SITEURL', 'http: // $ target_domain');" | tee -a wp-config.php echo "================================" ekko "Directory duplisert" ekko " ================================"

Jeg legger også til OMPLASSERE sette til slutten av filen. Hvis du vil, kan du erstatte dette med statisk WP_HOME og WP_SITEURL innstillinger.

Kopier databasen

Deretter dumper vi databasen, lager en ny database med tillatelser som brukeren oppgav, og deretter importerer databasen til den:

# Start Database Duplication # Eksporter databasen mysqldump -u $ mysql_user -p $ mysql_pass $ source_dbname> $ target_directory / clone_ $ NOW.sql # Opprett måldatabasen og tillatelsene mysql -u $ mysql_user -p $ mysql_pass -e "opprett database $ target_dbname; Gi alle privilegier på $ target_dbname. * TIL '$ target_dbuser' @ 'localhost' IDENTIFISERT AV '$ target_dbpass' "# Importer kildedatabasen til målet mysql -u $ mysql_user -p $ mysql_pass $ target_dbname < $target_directory/clone_$NOW.sql echo "================================" echo "Database duplicated" echo "================================" 

Igjen fant jeg det best å bruke master MySQL-godkjenning for disse aktivitetene mens du konfigurerer databasens innstillinger basert på kildeområdet og kloninnstillingene for en enkelt side.

Kopier webserverkonfigurasjonen

Til slutt er vi klare til å pakke opp ting og trykke på startknappen. Det er sjeldent Jeg ser at disse typer skript håndterer det ekstra trinnet for webserverkonfigurasjon. Så, jeg ønsket å gjøre det også.

Jeg kopierte kildeområdets Apache .conf-fil over til en ny .conf-fil for klonen. Jeg brukte perl for en streng erstatning for domenene og katalogbanene. Deretter aktiverte jeg nettstedet med Apache og lanserte webserveren på nytt:

#Activate Web Configuration cp $ default_apache_directory / $ source_conf $ default_apache_directory / $ target_conf #set database detaljer med perl finn og erstatt perl -pi -e "s / $ source_domain / $ target_domain / g" $ default_apache_directory / $ target_conf perl -pi -e "s | $ source_directory | $ target_directory | g" $ default_apache_directory / $ target_conf a2ensite $ target_conf tjeneste apache2 reload echo "====================== ========== "ekko" Webkonfigurasjon lagt til "echo" ================================ = "echo" klonen er fullført. " ekko "Test på http: //" $ target_domain echo "================================" fi

Og det er det. Her ser en gjennomgang av skriptet ut i virkeligheten:

================================================== = Clone WordPress Script ============================================== ===== MySQL Master Brukernavn (f.eks. Root-admin): harry_potter harry_potter MySQL Master Password (f.eks. Super-strong-passord): voldemoort ~ jenny7! voldemoort ~ jenny7! Kildedomen (f.eks. Hagearbeid): hagearbeid.io Kildekatalog (ingen skråstrekk f.eks. / Var / www / hagearbeid): / var / www / hagearbeid Kilde Databasens navn (f.eks. Hagearbeid): database_gardening database_gardening Kildedatabase Bruker (f.eks. User_for_garden) : hermione hermione Source Database Pass (f.eks. pwd_garden):! 987654321abcdefgh #! 987654321abcdefgh # Source Conf File (f.eks. gardening.conf): gardening.conf gardening.conf Måldomen (f.eks. cycling.io): cycling.io Målkatalog slash f.eks / var / www / sykling): / var / www / sykling / var / www / sykling Target Database Name (f.eks sykling): database_cycling database_cycling Target Database Bruker (f.eks user_for_cycling): Hedwig Hedwig Target Database Pass (f.eks pwd_cycling): pwd_for_cycling_not_hogwartz Mål Conf File (f.eks cycling.conf): 0007b-cycling.conf 0007b-cycling.conf Klone nå? (y / n) y ============================================ ======= WordPress Cloning er begynnelsen ======================================= ============ Tar:.: Filen endret når vi leser den definere ('RELOCATE', true); ================================ Directory duplisert ================= ======================================================================================================? ================================ Aktivere nettstedet 0007b-sykling. For å aktivere den nye konfigurasjonen må du kjøre: service apache2 reload * Last opp webserver apache2 * =============================== == Webkonfigurasjon lagt til ================================= Klonen er fullført. Test på http://cycling.io =================================

På mine små WordPress-nettsteder tok duplisering bare 30 til 90 sekunder!

Liten skrift

Det er et par flere ting du trenger å vite.

Direkte innloggingsbane først

Først, for å logge på ditt klonte område, må du bruke wp-login.php-banen i stedet for wp-admin som omdirigerer til kildes webadressen, f.eks. http://clone.io/wp-login.php som vist nedenfor:

Endring over domener

Siden WordPress hardcodes mye av kildedomenet ditt i databasen, har jeg funnet ut at brukeren OMPLASSERE Innstillingen i wp-config.php gjør det enkelt å oppdatere dette gjennom Generelt> Innstillinger. Du lagrer bare skjemaet med den nye destinasjonsadressen:

Når du har lagret den klonte måladressen, kan du fjerne OMPLASSERE Innstilling fra wp-config.php manuelt.

En kollega foreslår imidlertid at du kanskje vil bruke et verktøy som InterconnectITs søk og erstatt for WordPress-databaser. Det er også dokumentert på Envato Tuts + i Migrating WordPress over verter, servere og nettadresser.  

The Final Script

Her er det endelige skriptet for wpclone.sh-gjerne endre standardverdiene:

#! / bin / bash -e # Klon et WordPress-nettsted via Bash-skriptet klart ekko "================================ ==================== "ekko" Clone WordPress Script "echo" ===================== ================== "Angi standardinnstillinger (nyttig for testing) default_mysql_user = $" root-admin "default_mysql_pass = $ "super-strong-password" default_source_domain = $ "gardening.io" default_target_domain = $ "cycling.io" default_source_directory = $ "/ var / www / hagearbeid" default_target_directory = $ "/ var / www / sykling" default_apache_directory = $ " / etc / apache2 / sites-available "default_source_conf = $" gardening.conf "default_target_conf = $" cycling.conf "default_source_dbname = $" hagearbeid "default_source_dbuser = $" user_for_garden "default_source_dbpass = $" pwd_garden "default_target_dbname = $" sykling "default_target_dbuser = $ "user_for_cycling" default_target_dbpass = $ "pwd_cycling" NÅ = $ (date + "% Y-% m-% d-% H% M") #Request MySQL Admin lese -p "MySQL Master Brukernavn (for eksempel "$ default_mysql_user" ): "mysql_user mysql_user = $ mysql_user : - $ default_mysql_user echo $ mysql_user read -p "MySQL Master Password (f.eks. msgstr "$ s  ekko $ source_domain read -p "Kildekatalog (ingen tilbaketrukket skråstrek, for eksempel" $ default_source_directory "):" source_directory source_directory = $ source_directory: - $ default_source_directory ekko $ source_directory read -p "Kilde databasens navn (f.eks." $ default_source_dbname ") : "source_dbusame source_dbname = $ source_dbname: - $ default_source_dbname echo $ source_dbname read -p" Kilde databasebruker (f.eks. "$ default_source_dbuser"): "source_dbuser source_dbuser = $ source_dbuser: - $ default_source_dbuser echo $ source_dbuser read -p" Source Database Pass (for eksempel "$ default_source_dbpass"): "source_dbpass source_dbpass = $ source_dbpass: - $ default_source_dbpass echo $ source_dbpass # forespørsel kilde Settings lese -p" Source Conf fil (for eksempel "$ default_source_conf "):" source_conf source_conf = $ source_conf: - $ default_source_conf echo $ source_conf # Forespørsel målinnstillinger read -p "Target Domain (f.eks. "$ default_target_domain"): "target_domain target_domain = $ target_domain: - $ default_target_domain ekko $ target_domain read -p" Målkatalog (ingen skråstrekk f.eks. "$ default_target_directory"): "target_directory target_directory = $ target_directory: - $ default_target_directory echo $ target_directory read -p "Target Database Name (f.eks." $ default_target_dbname "):" target_dbname target_dbname = $ target_dbname: - $ default_target_dbname echo $ target_dbname read -p "Måldatabasebruker target_dbuser = $ target_dbuser: - $ default_target_dbuser echo $ target_dbuser read -p "Måldatabase Pass (f.eks." $ default_target_dbpass "):" target_dbpass target_dbpass = $ target_dbpass = $ default_target_dbpass echo $ target_dbpass read -p "Mål Conf File (f.eks. "$ default_target_conf"): "target_conf target_conf = $ target_conf: - $ default_target_conf ekko $ target_conf echo" Clone nå? (y / n) "read-run hvis [" $ run "== n], og avslutt deretter ekko" ========================== ==================== "echo" WordPress Cloning er begynnelsen "echo" ============= ========================= "#backup source_directory cd $ source_directory # add -v alternativ til disse hvis du ønsker å se utførlig fil-liste tjære -czf source_clone_ $ NOW.tar.gz. #unzip klone i målet katalogen mkdir -p $ target_directory tar -xzf source_clone_ $ NOW.tar.gz C $ target_directory #remove tarball av kilde rm source_clone_ $ NOW.tar.gz cd $ target_directory # Reset Mapperettigheter finne $ target_directory -type d exec chmod 755  \; finne $ target_directory -type f exec chmod 644  \; #set database detaljer med perl finn og erstatt perl -pi -e "s / $ source_dbname / $ target_dbname / g" wp-config.php perl -pi -e "s / $ source_dbuser / $ target_dbuser / g" wp-config.php perl -pi -e "s / $ source_dbpass / $ target_dbpass / g" wp-config.php echo "definere (" RELOCATE ", true);" | tee -a wp-config.php #echo "definere ('WP_HOME' http: // $ target_domain '); "| tee -a wp-config.php #echo "definere ('WP_SITEURL', 'http: // $ target_domain');" | tee -a wp-config.php echo "================================" ekko "Directory duplisert" ekko " ====================================================================================================================================== $ source_dbname> $ target_directory / clone_ $ NOW.sql # Opprett måldatabasen og tillatelsene mysql -u $ mysql_user -p $ mysql_pass -e "opprett database $ target_dbname; Gi alle PRIVILEGER PÅ $ target_dbname. * TIL '$ target_dbuser' @ ' localhost 'IDENTIFIED BY' $ target_dbpass '"# Importer kildedatabasen inn i målet mysql -u $ mysql_user -p $ mysql_pass $ target_dbname < $target_directory/clone_$NOW.sql echo "================================" echo "Database duplicated" echo "================================" #Activate Web Configuration cp $default_apache_directory/$source_conf $default_apache_directory/$target_conf #set database details with perl find and replace perl -pi -e "s/$source_domain/$target_domain/g" $default_apache_directory/$target_conf perl -pi -e "s|$source_directory|$target_directory|g" $default_apache_directory/$target_conf a2ensite $target_conf service apache2 reload echo "================================" echo "Web configuration added" echo "================================" echo "Clone is complete." echo "Test at http://"$target_domain echo "================================" fi

Hvis du har forslag og tilpasninger, vennligst gi meg beskjed. Legg inn dine tanker nedenfor i kommentarene.

Opprydding for utvidet testing

Følgende linjer kan være nyttige for deg for å slette og angre testwebområder som du kloner. Du kan tilpasse det til dine behov:

 sudo rm -ifr / var / www / klon sudo a2dissite clone.conf sudo tjeneste apache2 reload sudo rm /etc/apache2/sites-available/clone.conf mysql -u root -p -e "drop database klone;"

Endre sikkerhetsnøkler i Wp-Config.php

Du kan også bedre sikre ditt nye WordPress-nettsted ved å bytte ut autentiseringsnøkler og salter manuelt på destinasjonsstedets wp-config.php:

/ ** # @ + * Autentisering Unike Nøkler og Salter. * * Endre disse til forskjellige unike setninger! * Du kan generere disse ved hjelp av @link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org hemmelig nøkkel tjeneste * Du kan endre disse når som helst for å ugyldiggjøre alle eksisterende kapsler. Dette vil tvinge alle brukere til å logge på igjen. * * @Since 2.6.0 * / define ('AUTH_KEY', '+ 9% S? YVnr% 5Vr! Et4J, @ 9 / Z ^ .kT_Lu ~ 5SGwr9 = | Y & D-ARSWf $ mF # J_3U: / iE> -R '); define ('SECURE_AUTH_KEY', 'e3Wr7% Aa7H1, f:! 5 @ y: Q; c01dL '); define ('LOGGED_IN_KEY', '1I% pW% UyjRMqy__Da) siA) + V] Ur $ 9uXPmxv | eBjM ~ -m &-9kC<%59rB7sbe1)jW0GCnfupJT+8z-z#%o@b|[QH=i@h|-/t!9S'); define('SECURE_AUTH_SALT', 'ON8K<,WSy8+F ~XaQpCwC8(a/HksMhZio |% | cisp1R 9cJ< Rz-J;H|:O2A7$+*aGXMH!+KvD+tZ/I*U5$'); define('NONCE_SALT', '[ytQ;C)BvgU!#>en ,, g |) ~ EKBQUig7Uv.-8 Q% lmFte, P>,] f # i'Wx8S + _S @ & ( ')?..; / ** # @ - * /

Du kan bare gå til https://api.wordpress.org/secret-key/1.1/salt/ og kutte og lime dem inn i wp-config.php-filen din:

Nå, hvis du er en Linux-skriptpurist, lar jeg deg oppdatere Gallagher's WordPress Bash Installer Script. Hans skript kopierte over standard WordPress wp-config.php, så han ville ha forutsigbare kildestrenger å erstatte med nøklene som hans skript genererte:

#set WP salter perl -i -pe 'BEGIN @chars = ("a" ... "z", "A" ... "Z", 0 ... 9); trykk @chars, split //, "! @ # $% ^ & * () -_ []  <> ~ \ '+ = ,.;: /? |"; sub salt join "), kart $ chars [rand @ chars], 1 ... 64 s / sett ditt unike uttrykk her / salt () / ge 'wp-config.php

Jeg skrev aldri opp en regex for å erstatte nøkkelverdiene i dynamiske eksisterende WP-config.php-filer fra våre kildeområder. Hvis du bestemmer deg for, vennligst del det i kommentarene og takk på forhånd.

spørsmål?

Jeg likte veldig mye å få dette skriptet til å fungere. Eller, jeg burde i det minste si at jeg likte å kjøre den da jeg var ferdig. Jeg ønsket at jeg hadde laget det for lenge siden, da det er utrolig effektivt og effektivt. Jeg kunne klone små WordPress-nettsteder og få dem til å kjøre på min server på omtrent 60 sekunder. Ingen av de andre pluginene eller dupliseringsalternativene er like sømløse.

Hvis du har spørsmål, vennligst legg inn dem nedenfor. Eller du kan kontakte meg på Twitter @ reifman eller email meg direkte. Vennligst sjekk ut min Envato Tuts + instruktørside for å se andre opplæringsprogrammer jeg har skrevet, for eksempel min oppstartsserie (Bygg opp oppstart med PHP).

Relaterte linker

  • WordPress Bash Installer Script av Brian Gallagher
  • Flytter WordPress
  • Et Shell-skript for en fullstendig WordPress Backup av Konstantin Kovshenin
  • WordPress Plugins tilgjengelig på CodeCanyon