Siirtotapa 2: SSH & WP-CLI

Siirtääksesi sivuston WordPress-komentorivityökalun(WP-CLI)  avulla tarvitset SSH-yhteyden molempiin koneisiin, minkä lisäksi WP-CLI tulee olla asennettuna kumpaankin ympäristöön. Siirto komentorivin kautta on kaikkein varmatoimisin siirtomenetelmä, sillä siinä pystyt kontrolloimaan kaikkea mitä siirrossa tapahtuu.

Vanhan palvelimen tiedot (esimerkki)

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

Seravon 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 2.2.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 vientitiedostossa on taulumäärittelyjä (esimerkiksi ENGINE=InnoDB) pitää ne poistaa.

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

Lisäksi mikäli taulujen prefix on muu kuin wp, tulee se vaihtaa sekä taulujen nimissä että mm. wp_options-taulun kenttien nimissä (esim. wp_user_roles).

wp-user@123.123.123:~$ sed -i 's/vanha-prefix/wp_/g' ~/wordpress-tietokanta.sql

4. Kirjaudu SSH-tunnuksilla Seravon 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-content 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"

Ratkaisiko tämä ongelman?