Local, Git ja WP-Cloud

Siirsin Lautapelioppaan ja Kirjavinkit WP-Palvelusta Zonerin WP-Cloudiin. Olen WP-Palvelussa tottunut tekemään kehitystyötä omalla koneella olevassa kehitysympäristössä ja jatkaisin sitä mieluusti. Haluan myös pitää sivuston olennaiset osat versionhallinnassa. WP-Cloudissa on mahdollisuus staging-sivuston käyttöön, mutta verkossa oleva kehitysympäristö ei ole omalla koneella olevan veroinen.

Näillä ohjeilla saa sivuston olennaiset osat versionhallintaan ja paikallisen kehitysympäristön tehtyä Localilla. Ohjeet ovat WP-Cloud silmälläpitäen tehty, mutta toiminevat muuallakin, missä vain on Git käytettävissä ja vastaavanlaisesti rakennettu platta.

(Lyhyesti vertailua: WP-Palvelu on ensifiilisten perusteella selvästi parempi, mutta jos näiden erityisemmin tuottamattomien harrastesivujen ylläpito maksaa toisaalla yhteensä noin 300 euroa kuussa ja toisaalla alle 40 euroa kuussa, niin ei tarvitse pitkään harkita, kummalla mennään.)

Gitin käyttöönotto

Ensinnäkin palvelimella pitää ottaa Git käyttöön. Anna nämä komennot palvelimella WordPressin hakemistossa (WP-Cloudissa /data/wordpress):

git init
git config --global user.email "oma@mailiosoite.fi"
git config --global user.name "Oma Nimi"
git config --global receive.denyCurrentBranch updateInstead

Näillä saadaan Git aktivoitua. Viimeinen rivi on olennainen asetus, joka mahdollistaa Gitin käyttämisen haluamallamme tavalla.

Kaikkea ei toki kannata laittaa versionhallinnan alle. WordPressiä itseään esimerkiksi ei, tai julkisia lisäosia. Ideaalitapauksessa sivuston rakenne olisi Bedrock-mallinen ja WordPress ja julkiset lisäosat asennettaisiin Composerilla, mutta sellaisen rakenteleminen tässä tapauksessa on joko mahdotonta tai hankalaa.

Lisätään siis tässä vaiheessa käsin versionhallintaan kaikki ne asiat, joita halutaan seurata, eli esimerkiksi Lautapelioppaan tapauksessa teema ja omat lisäosat:

git add /wp-content/themes/lautapeliopas_2020
git add /wp-content/plugins/mikko.php
git add /wp-content/mu-plugins/redirects.php
git commit -m "Eka commit!"

Paikallisen version perustaminen

Perustetaan seuraavaksi Localiin paikallinen sivusto. PHP-versio ja serveri kannattaa katsoa mahdollisimman lähelle tuotannossa käytössä olevaa.

Tuotantosivustolta tarvitaan tietokanta, sen saa joko jollain pluginilla tai WP CLI:llä:

wp db export tietokanta.sql

Nappaa tietokantadumppi talteen, siirrä se Local-sivuston juureen ja avaa Localin shell, ja anna siellä seuraavat komennot:

wp db import tietokanta.sql
wp search-replace https://domain.fi https://domain.local
wp search-replace https://www.domain.fi https://www.domain.local

Huomaa, että ainakin WP-Cloudista tulevassa tietokannassa taulujen prefix on wp_zoner_ eikä wp_, eli tämä pitää huomioida ja vaihtaa Localin wp-config.php-tiedostoon ennen search-replacen tekemistä. Etsi ja korvaa -toimintoon tulee tietysti oma domainisi.

Käytössä olevat lisäosat voi asentaa monin tavoin, suoraviivaisinta lienee napata SFTP:llä kopio tiedostoista, viitseliäämpi virittelee lisäosien asentamisen Composerilla. Mediaa ei kannata alkaa kopioimaan paikalliseksi, vaan kannattaa lukea mediat tuotantosivulta.

Sitten asennetaan Git-repo Localiin. Localin app/public/-hakemistossa tehdään näin:

git init
git remote add origin ssh://käyttäjätunnus@domain.fi:portti/polku/wordpressiin/.git

Tämän jälkeen Git on sitä mieltä, että koko WordPress on uutta ja mielenkiintoista, eli kannattaa vähän rajata, mitä haluaa versionhallinnan alle täälläkin päässä. Yksi tapa lähestyä asiaa on kieltää kaikki, eli laittaa .gitignore-tiedoston sisällöksi yksinkertaisesti *.

Sen jälkeen voidaan sitten lisätä halutut tiedostot seurannan alle

git add -f /wp-content/themes/lautapeliopas_2020
git add -f /wp-content/plugins/mikko.php
git add -f /wp-content/mu-plugins/redirects.php

Koska tiedostot ovat ignoren alaisia, tarvitaan -f-lippu.

Nyt muutokset kehitysversiossa on helppo julkaista tuotantoon Gitillä.

Versionhallinta ja WordPressin päivitykset

Asialla on sellainen ei-toivottu seuraus, että WordPress näkee sivuston olevan versionhallinnassa ja kytkee automaattiset WordPressin päivitykset pois päältä. Tässä esitelty tapa ei vain pidä WordPressiä versionhallinnan alaisena, joten päivityksiä ei tule.

Ongelmaan on kaksi ratkaisua: joko WordPress sisällytetään versionhallintaan, päivitykset tehdään paikallisesti ja viedään tuotantoon Gitillä, tai sitten sallitaan päivitykset versionhallinnasta huolimatta. Päivittäminen kehitysympäristössä on ihan ok sinänsä, koska se mahdollistaa uuden version testaamisen, mutta jos vaivaa ei halua nähdä, päivitykset voi sallia versionhallinnasta huolimatta tällä filtterillä:

add_filter( 'automatic_updates_is_vcs_checkout', '__return_false' );

Vastaa

Sähköpostiosoitettasi ei julkaista.

This site uses Akismet to reduce spam. Learn how your comment data is processed.