WordPress-sivuston siirto Dockeriin Duplicator-lisäosan avulla

WordPress-sivuston tai  WooCommerce-verkkokaupan siirto Dockeriin on hyvä idea silloin, kun verkkokauppa kasvaa suureksi ja kävijämäärät lisääntyvät. Docker tarjoaa virtuaalipalvelimen sijaan helpon tavan lisätä suorituskykyä ilman, että virtuaalipalvelimen konfigurointiin tarvitsee käyttää aikaa. Docker on käyttövalmis käytännössä jopa sekunneissa ja sopii erityisesti sellaisille kehittäjille, jotka eivät halua säätää virtuaalipalvelimen asetuksien kanssa ja tarvitsevat lisätehoa helposti.

Docker-arkkitehtuuri sopii erityisen hyvin WordPress-alustalle ja mm. WooCommerce-lisäosalla tehdyt kaupat nopeutuvat merkittävästi. Nopeus ja suorituskyvyn nousu johtuu muutamasta seikasta. Ensinnäkin, Dockerissa on mahdollista perustaa erillinen Docker-kontti tietokannalle, ja erillinen Docker-kontti tiedostoille. Näin ollen tietokantaa rasittavat toimenpiteet voidaan tarvittaessa skaalata Dockerissa suuremmalle suorituskyvylle. Tai toistepäin, jos esimerkiksi verkkosivusto olisi täynnä isoja kuvia ja tiedostoja. Tällaista joustavuutta ei perinteisellä webhotellialustalla pysty toteuttamaan.

Tässä artikkelissa ohjaamme yksityiskohtaisesti, miten WordPress-sivuston siirto tehdään Docker-alustalle. Lähtötilanteessa sivusto on XetNET-webhotellissa, ja lopputuloksena sivusto on siirretty Dockeriin käyttäen kahta konttia. Voit hyödyntää tätä ohjetta lisäksi WordPress-sivuston siirrossa toiselta palveluntarjoajalta toiselle, jos siirrät sivuston webhotellista toiseen webhotelliin. Aloitetaan asentamalla WordPress-sivustoon Duplicator-lisäosa.

Asenna WordPress-sivustollesi Duplicator-lisäosa hallintatyökalussa “Lisäosat” -> “Lisää uusi”. Etsi hakusanalla “Duplicator – WordPress Migration Plugin“. Duplicator on erinomainen työkalu sivustosi siirtoon. Se tekee sivustostasi kahden tiedoston paketin, johon kuuluu installer.php sekä verkkosivustosi tiedostot tietokannan kera ZIP-pakettina. Näin ollen sinun ei tarvitse kuin siirtää kaksi tiedostoa Docker-alustalle, asentaa paketti ja tehdä nimipalvelinmuutokset. Tässä on koko projekti lyhyesti kuvattuna.

Kun olet asentanut Duplicatorin, tehdään sen avulla paketti siirtoa varten valmiiksi.

Aloita luomalla paketti klikkaamalla oikeassa yläreunassa “Create New”.

Voit valita paketillesi seuraavaksi tiedoston nimen ja tallennussijainnin. Oletusasetuksiin ei tarvitse tehdä muutoksia ellet halua, eikä tietokannan (kuva yllä) tietoja tarvitse vielä antaa tässä vaiheessa. Jatka painamalla “Next” nappia.

Seuraavaksi Duplicator skannaa läpi sivustosi tiedostot ja antaa analyysin.

Mikäli kaikki näyttävät olevan mallillaan, eikä mitään huomionarvoista löytynyt eri vaiheissa, voit jatkaa rakentamalla pakettia hyväksymällä ja ruksittamalla “Yes”-laatikon, ja painamalla “Build”. Kuvassa näkyvä punainen “Notice” ilmoitus oli yleinen ilmoitus siitä, että skannaus ei löytänyt suuria tiedostoja jotka voivat pikaskannauksessa yleensä jäädä huomiotta. Tämä on normaalia, ellei kansiossasi ole useiden satojen megatavujen tiedostoja jotka saattavat haitata Duplicatorin pikaskannausta.

Paketin rakennuksen jälkeen voit ladata luodut tiedostot, eli installer.php sekä ZIP-tiedoston. Nyt pakettisi on valmis ja ensimmäinen vaihe on takana. Siirrytään seuraavaksi tilaamaan ja luomaan XetNET Docker-kontit.

Docker-kontin tilaaminen, paketin siirto ja asentaminen

WordPress tarvitsee toimiakseen kaksi konttia: PHP 7.2 kontti sekä MariaDB-tietokantakontti. Voit vaihtoehtoisesti valita MySQL 5.7 kontin, mutta MariaDB saattaa olla tulevaisuuden kannalta varmempi ratkaisu, jota kehitetään aktiivisemmin. Lisäksi kannattaa maksuton phpMyAdmin kontti valita mukaan, mikäli tarvitset pääsyn tietokantaan siirron yhteydessä tai jälkeen (suositeltua). Kirjaudu tai rekisteröidy XetNET Docker-palveluun asiakashallinnan tunnuksillasi: https://portal.dockr.net/login

Mikäli et ole vielä asiakkaamme, voit luoda uuden tilin rekisteröitymällä. Mikäli olet XetNETin asiakas, voit kirjautua olemassa olevalla tunnuksellasi.

Sisäänkirjautumisen tai rekisteröitymisen jälkeen oikeassa yläreunassa on nappi “Uusi käyttöönotto”.

Valitse PHP 7.2 + MariaDB -kontit. Valitse lisäksi maksuton kehitystyökalu phpMyAdmin. Paina “Jatka”.

Voit nyt valita haluamasi kontin suorituskyvyn S-L paketeista. Vinkki: voit aina valita pienemmän S-kontin ja päivittää sitä suurempaan myöhemmin. Konttien skaalaus on helppoa Dockerilla jälkikäteen jos päätät yritysideasi kanssa mennä Leijonan luolaan ja päivittää sivustosi järeämmäksi ennen sitä, jotta se kestää kaiken liikenteen ja kuorman. Paina “Jatka” ja tilaus etenee.

Tilauksen jälkeen löydät nimeämäsi sovelluksen klikkaamalla “Sovellukset” valikosta, ja painamalla “Hallinnoi” nappia, jolloin näet sovelluksesi yksityiskohtaiset kontit kuten yllä kuvassa. Klikkaamalla jokaista konttia löydät yksityiskohtaiset tiedot, kuten PHP 7.2 kontin kohdalta sftp-palvelimen IP-osoite sekä kirjautumistiedot, joilla voit siirtää tiedostot palvelimelle, sekä tietokannan kontin kohdalta tietokannan tiedot kuten salasanan (jota tarvitaan pian Duplicator-paketin asentamisessa).

Tiedostojen siirto SFTP:llä

Painamalla PHP 7.2 konttia Dockerin hallintasivuilla, löydät “Etäyhteys” välilehdeltä lisätiedot, joiden avulla pääset siirtämään tiedostot palvelimelle. Käytä SFTP-ohjelmaa kuten Windowsille ilmainen WinSCP, tai Windows+Macille ilmainen FileZilla jolla siirrät Duplicatorin luomat tiedostot palvelimelle.

Ota yhteys palvelimelle SFTP-ohjelmallasi ja suuntaa oikeaan hakemistoon, jonka tunnistat /webroot/ hakemistosta.

Poista vanhat tiedostot index.html ja info.php. Siirrä tähän kansioon Duplicatorin installer.php sekä ZIP-paketti. Tämän jälkeen tiedostosi on valmiina palvelimella odottamassa asennusta.

Nimipalvelinmuutos ohjelmallisesti ennen asennusta helpottaa asennusta ja testausta

Seuraavaksi tehdään väliaikainen nimipalvelinmuutos vain omalle tietokoneellesi, eli asetusmuutos HOSTS-tiedostoon. Syy: Docker oletuksena luo käyttöönotossa verkko-osoitteen muotoa “*.app.dockr.net” ennen kuin ohjaat liikenteen webhotellisi nimipalvelinasetuksia muuttamalla verkkotunnukseesi. *-asteriksitähden kohdalla on kontillesi luotu uniikki nimi.

Voit halutessasi tehdä asennuksen Duplicatorilla myös väliaikaisessa osoitteessa, mutta jos tarkoituksesi on vaihtaa Docker-kontille virallinen verkkotunnus siirron jälkeen voimaan, sivusto ei toimi välittömästi, koska asennusvaiheessa sille on annettu uudeksi osoitteeksi *.app.dockr.net -tyyppinen osoite. Joudut siis muuttamaan tietokantaan ohjaukset väliaikaisesta *.app.dockr.net osoitteesta oikeaan yritys.fi osoitteeseen. Siksi, jotta vältät yhden työvaiheen, seuraavaksi tehdään HOSTS-tiedoston avulla ohjaus verkko-osoitteesta osoittamaan Dockerin IP-osoitteelle.

Tällä tavoin vain sinun tietokoneesi poiketen muusta maailmasta osaa suunnistaa Dockerin palvelimelle, kun kirjoitat verkkosivuosoitteen yritys.fi selaimeesi, silloin kun teet Duplicator-paketin asennuksen. Tämä luo sinulle mahdollisuuden testiympäristöön joka kertoo, miten sivustosi toimii nimipalvelinmuutoksien jälkeen muulle maailmalle.

Lisäksi koska nimipalvelinmuutokset eivät ole kovin reaaliaikaisia ja ongelman sattuessa eteen vältät ns. harmaiden hiusten ilmaantumisen, kun sivustosi ei toimisikaan 24-48 tunnin aikana tai jälkeen.

Aloitetaan: näin nimipalvelinmuutos tehdään HOSTS-tiedostoon.

Windows:

Windows-käyttäjät löytävät HOSTS-tiedoston Windowsin alakansiosta /system32/drivers/etc/.

Löydät täältä HOSTS-tiedoston, jonka muokkaamiseksi sinun on avattava esimerkiksi Notepad-ohjelma Administrator-oikeuksilla. Voit tehdä sen klikkaamalla Notepadia oikealla hiirennäppäimellä ja valitsemalla “Run as administrator”.

Mac:

Mac-käyttäjät löytävät HOSTS-tiedoston Finderilla /private/etc/ kansiosta.

Avaa ja muokkaa tiedostoa seuraavasti.

Lisää HOSTS-tiedostoon IP-osoite ja domain-osoite yllä olevaa muotoa, eli ensin IP-osoite, sen jälkeen verkkotunnus. Löydät IP-osoitteen Dockerin hallintatyökalusta PHP 7.2 konttia tutkimalla sen “Etäyhteys” välilehdeltä kohdasta “Julkinen IP”. Osoita varmuuden vuoksi kummatkin osoitteet, www:n kera ja ilman, riippumatta kumpaa käytät.

Käy nyt lisäämässä Docker-konttiin PHP 7.2 myös domain-osoitteesi välilehdeltä “Domainit & SSL”, klikkaamalla “Lisää domain”. Lisäämällä domainin tässä vaiheessa ei tarkoita vielä sitä, että nimipalvelinmuutokset muuttuvat ja koko maailma ohjautuu Docker-palvelimelle. Ne muutetaan myöhemmin vielä cPanel-hallintatyökalusta. Vanhan *.app.dockr.net osoitteen voit jättää listalle, koska sitä ei pysty poistamaan muutenkaan.

Nyt olet tallentanut HOSTS-tiedoston ja lisännyt Docker-konttiisi verkkotunnuksen osoitteet. Jotta HOSTS-tiedoston muutos tulee voimaan, voit käynnistää tietokoneesi uudelleen tai tyhjentää nimipalvelimen välimuistin.

Windowsissa se onnistuu komentorivillä  (etsi ohjelma Command Prompt, tai cmd.exe) käskyllä:

  • ipconfig -flushdns

Macissa se onnistuu komentorivillä (etsi ohjelma Terminal) käskyllä:

  • sudo killall -HUP mDNSResponder

Tämän jälkeen kun yrität mennä verkkotunnukseesi esim. yritys.fi, ohjautuu verkkoselaimesi Dockerin palvelimelle. Kätevää! Testiympäristö on valmis ja nyt voidaan aloittaa Duplicator-paketin asennus.

Duplicator-paketin asennus

Jos teit äskeisen HOSTS-kikan, voit mennä nettiselaimellasi osoitteeseen yritys.fi/installer.php ja Duplicator-paketin asennus alkaa.

Tarkista ensimmäiseltä sivulta, että vihreä “Pass” lukee kahdessa ensimmäisessä kohdassa. Ruksita ehtojen hyväksyminen ja paina “Next”.

Seuraavassa vaiheessa tarvitaan tiedot tietokantapalvelimesta missä tietokantasi sijaitsee, sekä tunnuksesta ja salasanasta. Nyt tarvitaan muutama tieto Dockerin tietokantakontista.

Suuntaa Dockerin MariaDB tietokantakonttiin välilehdelle “Yleiskatsaus”. Löydät oikeasta reunasta “Mysql root password” kohdasta salasanan, kun klikkaat “Show” painikkeella sen ensin esiin. Syötä tämä Duplicatorin “Password” kenttään. User-kentässä oletuskäyttäjän nimi on “root”.

Kun klikkaat “Etäyhteys” välilehden, löydät Duplicatorin asentajan “Host” kohtaan tarvittavan IP-osoitteen. Oikea IP-osoite on “Yksityinen IP-osoite“, joka on tyypillisesti muotoa 10.10.x.x. Julkinen IP-osoite tietokannalle oletuksena on kytketty pois päältä tietoturvasyistä.

Database-kohtaan kirjoitetaan tietokantasi nimi. Ellet tiedä tietokantasi nimeä, löydät WordPress-asennuksesi tietokannan nimen webhotellisi cPanel-hallintaohjelmasta löytyvällä phpMyAdmin -sovelluksella. Löydät tietokannan nimen myös WordPressin wp-config.php tiedostosta, jonka voit avata ja tarkistaa vanhasta webhotellisi juurihakemistosta. Voit tätä varten käyttää cPanelin “Tiedostonhallinta” työkalua.

Kuva: Löydät mm. tietokantasi nimen WordPress-asennuskansiossa löytyvästä wp-config.php tiedostosta.

Paina nyt “Test Database” painiketta ja Duplicator-asentaja tarkistaa, onko yhteys tietokantaan kunnossa. Jatka painamalla “Next” mikäli kaikki näyttää vihreältä.

Seuraavaksi päivitetään tiedot, mitkä kansio- tai URL-osoitteet muuttuvat asennuksessa. Mikäli teit yllä mainitun HOSTS-muutoksen tietokoneellesi, voit syöttää URL-kenttään oikean, julkisen verkkotunnuksen osoitteeksi, kuten yritys.fi. Syötä PATH-kenttään uusi kansio, jonka saat selville WinSCP-ohjelmalla. Kuvassa näkyvä “/var/www/html/” on väärä kansio, joka piti korvata tässä tapauksessa muotoon “/home/sftpuser/apps/dockerkontin-nimi/webroot/

Koska kotihakemisto muuttuu, Duplicatorin asentaja tekee tarvittavat muutokset tietokantaasi, etsien vanhan kansio-osoitteen ja korvaten sen uudella.

Title-kenttään ei tarvitse tehdä muutosta, se on WordPress-sivustosi pääotsikko jonka voit siirron jälkeen muuttaa tarvittaessa myöhemminkin (jos tarvetta).

Scan Options -kohdassa syötä “Site URL” kenttään uusi osoite, esim. https://yritys.fi – tällöin vanha osoitteesi “Old URL” kentässä todennäköisesti on myös sama, https://yritys.fi. Tämä tarkoittaa sitä, että Duplicator ei korvaa URL-osoitetta tietokannassa uudella osoitteella. Jos käytät Duplicator-työkalua esimerkiksi verkkosivuston siirtämiseen väliaikaisesta aliverkkotunnuksesta, kuten uusi.yritys.fi -> yritys.fi, syötät silloin “Site URL” kenttään “https://yritys.fi” ja “Old URL” kenttään “https://uusi.yritys.fi”. Tällöin Duplicator etsii tietokannasta maininnat uusi.yritys.fi ja muuttaa ne muotoon yritys.fi.

“Old path” kentässä on tyypillisesti oikea osoite, sillä Duplicator on tarkistanut sen ennen siirtoa alkuperäiseltä palvelimelta. Voit kuitenkin tuplatarkistaa, että polku on oikein. Jatka painamalla “Next”.

Seuraavaksi Duplicator kertoo että asennus on valmis ja tarjoaa Login-linkkiä. Voit myös kirjautua sivustosi hallintaan /wp-admin/ hakemistosta tai muusta osoitteesta, jos olet vaihtanut sisäänkirjautumisosoitteen tietoturvan takia toiseen. Tällöin yllä oleva ilmoitus ilmestyy sinulle ensimmäisen kirjautumisen yhteydessä. Tietoturvasyistä on hyvä poistaa vanhat asennustiedostot. Klikkaa “Take me there now!” ja pääset seuraavalle sivulle:

Paina nyt “Remove Installation Files Now!” ja Duplicator poistaa asennuksessa käytetyt tiedostot.

Asennukseen liittyvät PHP- ja lokitiedostot on nyt poistettu, mutta Archive File eli ZIP-tiedosto on hyvä tietoturvan takia poistaa. Voit tarkistaa SFTP-yhteydellä (WinSCP-ohjelmalla) että juurikansiossa ei ole installer.php tiedostoa tai ZIP-pakettia. Poista asennustiedoston ZIP-tiedosto, jos se löytyy.

Nyt sivustosi on siirretty Docker-konttiin toimimaan ja voit taputtaa itseäsi olkapäälle, ottaa kahvitauon ja jatkaa WordPress-sivustosi kehittämistä huippunopealla Docker-alustalla!

Nimipalvelinmuutos

Voit testata ennen nimipalvelinmuutosta että sivustosi toimii oikein, kunhan olet tehnyt HOSTS-tiedostoon muutoksen yllä ohjeen mukaisesti. Jos kaikki näyttää toimivan oikein, on aika tehdä nimipalvelinmuutos webhotellisi DNS- eli nimipalvelinasetuksissa. Suuntaa cPanel-hallintatyökalulla Zone Editor-työkaluun.

Zone Editorilla voit vaihtaa nimipalvelimen osoittamaan verkkotunnuksesi yritys.fi osoitteesta oikeaan IP-osoitteeseen, eli Docker-palvelimen IP-osoitteeseen.

Paina oikean verkkotunnuksen kohdalta “Hallinta”-linkkiä.

Valitse verkkotunnuksen kohdalta A-tyypin kohdalta “Muokkaa” ja vaihda tietueeksi Docker-palvelimen IP-osoite. Tallenna uusi asetus, odota n. 24-48 tuntia kunnes nimipalvelinmuutos päivittyy ympäri maailman ja sen jälkeen WordPress-sivustosi Docker-alustalla palvelee kaikkia uusia käyttäjiä. Voit halutessasi tässä vaiheessa kytkeä pois HOSTS-tiedostosta IP-osoitteen ohjauksen, tai esimerkiksi parin vuorokauden päästä kun operaattorisi nimipalvelimet ovat päivittyneet ja osoite verkkotunnuksellesi ohjautuu uuteen Docker-palvelimen asennukseen.