Alla on kuvattu useita eri tapoja WordPress-sivustojen siirtoon toiselta palveluntarjoajalta Seravon WP-palveluun. Mikäli sivusto on ehjä ja pieni, ei siirtoon mene kuin parikymmentä minuuttia. Siirto on helppo tehdä itse. Seravo voi toki myös tehdä siirron tuntihinnallisena asiantuntijatyönä puolestasi, mikäli et itse ehdi siirtää sivustoa, tai siirtoon liittyy jotain erityishaasteita sivuston monimutkaisuuden tai rikkinäisyyden takia. Seravon siirtämät sivustot on aina myös Seravon eheystarkastamia.

Helpoin tapa siirtää WordPress-sivusto uuteen asennukseen on käyttää WP-palveluun valmiiksi asennettua All-in-One WP Migration -pluginia.

HUOM! All-in-One WP Migration toimii luotettavasti vain pienillä sivustoilla.

1. Asenna ja ota lisäosa käyttöön siirrettävällä sivustolla.

wordpress-sivuston-siirto-1

 

2. Vie sivusto lisäosan Export -toiminnon avulla zip-tiedostoon valitsemalla Export to -> File.

wordpress-sivuston-siirto-2

 

3. Lataa tiedosto koneellesi.

wordpress-sivuston-siirto-3

 

4. Ota lisäosa käyttöön WP-palvelussa ja tuo zip-tiedosto Import -toiminnon avulla painamalla Import from -> File.

wordpress-sivuston-siirto-4

 

5. Lisäosa pyytää varmistamaan, että sivustosi on varmuuskopioitu. Nyt sille ei ole tarvetta, joten voit huoletta painaa ”Continue”.

wordpress-sivuston-siirto-5

 

6. Valmis! Lisäosa pyytää vielä tallentamaan osoiterakenteen, jonka voit tehdä painamalla ”Permalinks Settings” linkkiä. Selaimen uuteen ikkunaan avautuu Permalinks Settings -sivu, jonka alaosasta löydät napin ”Tallenna asetukset”.

wordpress-sivuston-siirto-6

 

7. HUOM! All In One Migration -työkalu muuntaa sivustolla olevat sähköpostiosoitteet muotoon asiakas.x.seravo.com ja ne tulee muuntaa search-replace avulla. Työkalu löytyy WordPressin hallintapaneelin valikosta Työkalut -> Search Replace.

 

Haluaisitko, että Seravon WP-asiantuntijat auttavat sinua sivuston siirrossa? Ota meihin rohkeasti yhteyttä!

Pyydä tarjous siirrosta

Siirtääksesi sivuston WordPress-komentorivityökalun avulla tarvitset SSH-yhteyden molempiin koneisiin ja WP-CLI tulee olla asennettuna molempiin koneisiin. Siirto komentorivin kautta on kaikkein varmatoimisin siirtomenetelmä.

Vanhan palvelimen tiedot (esimerkki)

IP-osoite: 123.123.123.123
SSH-portti: 22
käyttäjä: wp-user
WordPressin asennushakemisto: /var/www/htdocs

WP-palvelu.fi -palvelupaketin tiedot (esimerkki)

osoite: esimerkki.wp-palvelu.fi
SSH-portti: 10350
käyttäjä: esimerkki
WordPressin asennushakemisto: /data/wordpress/htdocs

 

1. Aloita kirjautumalla vanhalle palvelimelle

oma-kone:~$ ssh wp-user@123.123.123.123

 

2. Tarkista että WP-CLI on asennettu

WP-CLI -työkalun asennusohje

wp-user@123.123.123:~$ wp --version
WP-CLI 0.17.0

 

3. Luo WordPressin tietokannasta vientitiedosto

HUOM! Muista määritellä –path -parametrilla WordPressin asennushakemisto.

wp-user@123.123.123:~$ wp db export --path=/var/www/htdocs/ ~/wordpress-tietokanta.sql

Mikäli viestitiedostossa on taulumäärittelyjä (esimerkiksi ENGINE=MyISAM) pitää ne poistaa. Lisäksi mikäli taulujen prefix on muu kuin wp_, kannattaa se vaihtaa sekä taulujen nimissä että mm. wp_options-taulun kenttien nimissä (esim. wp_user_roles).

wp-user@123.123.123:~$ sed -i 's/ENGINE=MyISAM//g' ~/wordpress-tietokanta.sql

4. Kirjaudu SSH-tunnuksilla WP-palveluun

wp-user@123.123.123:~$ exit
oma-kone:~$ ssh esimerkki@esimerkki.seravo.fi -p 10350

 

5. Kopioi WordPressin wp-content-hakemisto vanhalta palvelimelta
Siirto saattaa viedä useita kymmeniä minuutteja riippuen siirrettävien tiedostojen koosta ja määrästä.

esimerkki@esimerkki-wordpress:~$ rsync -avz --stats wp-user@123.123.123:~/wordpress-tietokanta.sql /data/db
esimerkki@esimerkki-wordpress:~$ rsync -avz --stats wp-user@123.123.123:/var/www/htdocs/wp-content /data/wordpress/htdocs

 

Huom! Yllä oleva komento olettaa, että vanhalta sivustolta ei tarvitse siirtää mitään muuta kuin kansion wp-contents sisältö. Mikäli vanhalla sivustolla on käytössä Bedrock tai jokin muu erityinen hakemistorakenne, voi sivustolle joutua lisäämään symbolisia linkkejä, jotta se toimisi oikein. Lisätietoja kehittäjille hakemistorakenteesta ja muusta löytyy sivustolta seravo.com/docs.
6. Tuo tietokanta WP-CLI -työkalun avulla

esimerkki@esimerkki-wordpress:~$ wp db import /data/db/wordpress-kanta.sql

 

7. Valmis! Tee vielä lopuksi mahdollisesti tarvittavat search-replace tietokantamuutokset

esimerkki@esimerkki-wordpress:~$ wp search-replace "/var/www/htdocs/wp-content" "/data/wordpress/htdocs/wp-content"

Jos vanhalle palvelimelle ei ole SSH-pääsyä vaan pelkkä FTP-yhteys, voi sivuston tiedostot kopioida WP-palvelu.fi:stä käsin komennolla:

esimerkki@esimerkki-wordpress:~$ wget -rl0 -nc -nH -nv  "ftp://user:pass@esimerkki.fi:/public_html/wp-content"

FTP ei käytä suojattua yhteyttä ja käyttäjätunnus/salasana näkyy tietoverkossa salaamattomana. Jos palveluntarjoajalla ei ole SSH:ta ja suojattua SFTP-yhteyttä, lopeta palvelun käyttö mahdollisimman pian.

Koska ilman SSH-yhteyttä ei voi tehdä komentoriviltä tietokantavientiä, pitää se tehdä käsin esimerkiksi Adminer, PHPMyAdmin tai vastaavan työkalun avulla. Työkaluvalikoima riippuu vanhasta palveluntarjoajasta.

Palvelimilla, joissa on saatavilla pelkkä FTP-yhteys voidaan tietokannan kopiointiin käyttää WP Migrate DB lisäosaa. Tämän jälkeen kopioitu tietokanta on helppo siirtää WP-palveluun komentoa wp db import käyttäen.

 

Lisävinkki: ääkköset ja merkistömuunnokset

Mikäli ääkköset ovat sekaisin tiedostonimissä, esimerkiksi koska vanhalla palvelimella oli käytössä jokin muu merkistö kuin UTF-8, voi tiedostonimet muuntaa convmv-komennolla. Yleisiä vanhoja merkistöjä ovat Windows-1255, ISO-8859-1 ja ISO-8859-15. Riippuen siitä mikä oli käytössä vanhalla palvelimella, tulee ajaa jompi kumpi alla olevista komennoista:

$ convmv -f ISO-8859-15 -t UTF-8 -r *
$ convmv -f windows-1255 -t UTF-8 -r *

Komento ajetaan WordPressin pääkansiossa /data/wordpress ja parametrin -r ansiosta muunnos tehdään kaikille tiedostoille alahakemistoissakin. Yllä oleva komento kertoo mikä olisi muunnoksen tulos mutta ei vielä tee sitä. Väärin tehtynä muunnos voi sekoittaa tiedostonimien merkistön täysin. Kun on varmuus, että merkistömuunnos menee oikein, pitää yllä olevaan komentoon vielä lisätä parametri --notest jotta muunnnos todella tapahtuu.

Mikäli ääkköset ovat sekaisin tekstitiedostojen sisällä voi tiedostojen sisällön merkistön muuntaa recode-komennolla. Tiedoston nykyisen merkistön näkee file-komennolla esimerkiksi näin:

$ file esimerkki.php
esimerkki.txt: ISO-8859-15 text/plain

Muunnoksen voi tehdä ajamalla esimerkiksi recode ISO-8859-15...UTF-8 *.php.

Sivuston eheyden ja turvallisuuden tarkistus

WP-palvelu.fi:n ylläpitoon sisältyy huolehtiminen siitä, että sivusto pysyy toimivana ja turvallisena. Edellytyksenä kuitenkin on, että sivusto oli julkaisuhetkellä ehjä. Jos sivustolla oli alun perin jo haittakoodia tai esim. räätälöidyssä teemassa oli alun perin koodivirhe, ei ylläpitoomme sisälly sivuston korjausta ja viimeistelyä julkaisukuntoon. Ohessa vinkkejä mitä voi kannattaa tarkistaa julkaisuhetkellä:

  • Ota HTTPS käyttöön mikäli sitä ei ollut aiemmalla palveluntarjoajalla. Vaihda sivuston tietokannassa ja tiedostoissa kaikki sivuston URL:t alkamaan https://, turvattoman http:// sijasta.
  • Mikäli sivustolla on kommentointi sallittu, kannattaa ottaa käyttöön Google ReCaptcha -lisäosa robottikommenttien estämiseksi. Samalla lisäosalla voi suojata myös sisäänkirjautumissivun ja käyttäjärekisteröinnit niin, että botit eivät pääse niistä läpi.
  • Poista ei käytössä olevat teemat ja lisäosat kokonaan, ja siivoa käytössä olevista lisäosista tarpeettomat tietoturva- varmuuskopio- ja välimuistilisäosat.
  • Avaa selaimen Developer Console tai vastaava työkalu, josta näkyy verkkovirheet ja JavaScript-virheet. Selaa läpi etusivu, muutama alasivu sekä muutama WP-adminin sivu ja varmista että selain ei varoita virheistä.
  • Tarkista palvelimella että PHP ei ilmoita virheistä katsomalla loki /data/log/php-error.log.
  • Kirjaudu SSH:lla palvelimelle ja aja palvelimella WP-palvelu.fi:n yleinen WordPressin testi wp-test ja tarkista ettei se ilmoita virheistä.

Vanhojen transienttien poistaminen

WordPressin transientit ovat välimuistityyppistä tietoa, jota WordPress tallentaa tietokanteen mikäli Redis object cache tai vastaavaa ei ole käytössä. Transientit kannattaa poistaa siirron yhteydessä, koska usein halutaan että välimuistit rakentuvat uudella palvelimella uudestaan.

Tietokantadumppitiedostosta ne voi poistaa sedillä näin:

sed -r '/INSERT INTO `wp_options` VALUES \([0-9]+,'\''_transient_/d' -i dump.sql
sed -r '/INSERT INTO `wp_options` VALUES \([0-9]+,'\''_site_transient_/d' -i dump.sql

Ajossa olevasta tietokannasta ne voi poistaa näin:

$ mysql

MariaDB > DELETE FROM wp_options WHERE option_name LIKE ('_transient_%');
Query OK, 69 rows affected (0.01 sec)

MariaDB > DELETE FROM wp_options WHERE option_name LIKE ('_site_transient_%');
Query OK, 29 rows affected (0.01 sec)

Emme suosittele komentoa wp transient delete-all siirtotilanteessa. Suora tietokantakomento kohdistuu aina varmasti tietokantaan vaikka object cache olisi käytössä ja toimii vaikka WordPress-asennus olisi rikki/kesken, kun wp-cli ei voi käynnistyä.

Siirtotavasta riippuen siirretyllä sivustolla ei ole object-cache.php.off-tiedostoa joka mainitaan Redis object cache -ohjeessa. Sellaisessa tilanteessa asennuksen voi tehdä komennoilla:

cd /data/wordpress/htdocs/wp-content
curl -O https://raw.githubusercontent.com/Seravo/wordpress/master/htdocs/wp-content/object-cache.php