tavis nörttimaailmassa

EksisONE - artikkeleita ja ohjeita nörttimaailmasta

Nopean WordPressin asennus virtuaaliserverille

WordPressin nopein asennus

WordPressin omia asennusohjeita ei kannata noudattaa, vaan nyt hyödynnetään niitä etuja, jotka virtuaaliserveri tarjoaa. Yksi sellainen on nopein WordPress-asennus minkä olet koskaan tehnyt. Kuuluisa 5 minuutin asennushan on aidosti enemmän ja jos joudut lisäksi siirtämään WordPressin tiedostot FTP:llä, niin aika venahtaakin huomattavasti pidemmäksi. Mutta nyt puhutaan aidosti lyhyestä ajasta.

Jos ajatuksesi oli siirtää jo oleva sivusto, niin malta mielesi. Kokeile ensin uuden asentamista, niin pääset asioiden kanssa tutummaksi. Voit myöhemmin jyrätä nyt asennettavan ja tehdäkin sitten muuton – siihenkin löytyy ohjeet.

WP CLI

Ennenkuin asennetaan WordPress, niin tarvitaan aputyökalu: WP CLI. Se on komentorivityökalu, jolla voi tehdä helposti (no, suhteellisen helposti) monia WordPressin asioita – mutta tehokkaammin ja ilman lisäosia.

WP CLI asennetaan hieman eri tavalla kuin mitä yleensä apt install avulla tehtäisiin.

Siirrytään /tmp hakemistoon.

cd /tmp

Ladataan WP CLI.

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Tehdään siitä suoritettava skripti.

chmod +x wp-cli.phar

Muutetaan nimi käytössä mukavampaan muotoon wp ja siirretään se hakemistoon, josta komento voidaan ajaa riippumatta missä itse ollaan.

mv wp-cli.phar /usr/local/bin/wp

Kokeillaan, että se toimii.

wp --info

Koska WP CLI tekee töitä webhakemistoissa, niin sen pitäisi tiedostojen 0mistajuuksien takia kuulua ryhmään www-data – oikeammin, sinun pitää kuulua, koska komennat WP CLI:tä. Se on helppo asia järjestää:

usermod -aG www-data $USER

WP CLI:n komentoja ei saisi ajaa rootina, koska se on vaarallista, koska root voi tehdä mitä vaan ja jos joku murtautuu rootin tunnukselle, niin sitten hän voi tehdä mitä vaan. Niin voi, se on root-tunnuksen idea. Siksi toiseksi WP CLI:n ajamista ei voida estää rootilta, vaan sitä vaikeutetaan pakottamalla käyttämään aina komennon mukana vipua --allow-root. Asia, jonka WP CLI ystävällisesti jopa kertoo erikseen joka kerta, jos sen unohtaa. Se mitä en ymmärrä, että miksi on turvallisempaa komentaa WP CLI:tä tuolla vivulla kuin ilman? Tai miksi mahdollinen murtautuja ei sitten osaisi samaa vipua käyttää?

Niin tai näin, niin sen antaminen joka hemmetin kerta on suunnattoman ärsyttävää, joten korjataan se. Samalla opitaan uusi asia nimeltään alias. Alias on kuin nimeäisi jonkun komennon tai komentoketjun uudestaan – niin no, sitähän alias nimenomaan tarkoittaa.

Avataan se tiedosto, johon aliakset tehdään:

nano ~/.bashrc
  • tilde eli aaltoviiva tarkoittaa sen käyttäjän kotihakemistoa, joka sinä olet sillä hetkellä. Jos olet kirjautunut rootina, niin ~/ tarkoittaa samaa kuin /root/. Jos olisit joku muu käyttäjä, niin se olisi /home/käyttäjätunnus/

Kelaa alaspäin niin kauan kunnes löydät kohdan # some more ls aliases. Laita niiden perään tämä:

alias wp='wp --allow-root'

Kirjaudu terminaalista ulos ja takaisin sisään. Nyt sinulla on aina automaattisesti mukana --allow-root, kun annat wp komennon.

Tietokannan luominen

WordPressin asentaminen alkaa aina tietokannan luomisella. Kirjaudu MariaDB:hen:

mysql -u root -p
  • Jos sallit rootille kirjautumisen ilman salasanaa, niin voit jättää -p pois.

Luodaan tietokanta. Vaihda wordpress haluamaksesi.

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Luodaan käyttäjä. wordpress on oltava sama minkä äsken loit ja vaihda tunnus sekä salasana haluamiksesi.

GRANT ALL ON wordpress.* TO 'tunnus'@'localhost' IDENTIFIED BY 'salasana';

Kerrotaan muutokset MariaDB:lle ja poistutaan.

FLUSH PRIVILEGES;
EXIT;

WordPressin lataaminen

Siirry virtual hostisi hakemistoon. WP CLI komennot on ajettava siinä hakemistossa, jossa on tai johon tulee WordPress.

cd /var/www/eksis.dev/public_html

Ladataan WordPress. Siihen menee yleensä luokkaa pari sekuntia. Hakkaa FTP:n 5-0.

wp core download --locale=fi

Luodaan wp-config.php:

wp core config --prompt

Asennus kysyy sinulta muutamia asioita:

  • dbname = tietokannan nimi
  • dbuser = tietokannan käyttäjä
  • dbpass = tietokannan käyttäjän salasana
  • dbhost = localhost
  • dbprefix= wp_ (voi olla haluamasi ja muista alaviiva, se helpottaa)
  • dbcharset = utf8
  • dbcollate = utf8_swedish_ci
  • locale = fi
  • lopuissa hyväksy enterillä oletukset

Saat tehtyä saman asian yhdellä komennollakin. Muokkaa tiedot oikeiksi.

wp core config --dbname='tietokanta' --dbuser='db-käyttäjä' --dbpass='db-salasana' --dbhost='localhost' --dbprefix='wp_' --dbcharset=útf8 --dbcollate='utf8_swedish_ci' --locale='fi'

Ekstraa:

Jos sinulla on tietokantakäyttäjä, jonka rooli sallii tietokannan luomisen, niin sinun ei tarvitse erikseen tehdä tietokantaa, vaan se tehdään samalla kertaa kuin wp-config.php tiedoston luominen. Silloin keksit ensin tietokannan nimen, annat moisen käyttäjän tunnuksen kohtaan db-käyttäjä ja sen salasanan kohtaan db-salasana. Silloin tietokanta luodaan automaattisesti, kun annat komennon wp db create WordPressin asennuksen jälkeen.

Jos käytät moista vain omassa hallussasi oleville sivustoille, niin siinä ei ole mitään ongelmaa. Mutta älä käytä sitä asiakkaiden tai jonkun muun kolmannen asennuksiin, koska he näkevät moisen ”superkäyttäjän” tunnuksen ja salasanan wp-config.php tiedostosta. Jos heillä ei ole pääsyä MariaDB:hen, niin ei se niin tolkuton ongelma ole – mutta silti moiset asiat tavataan pitämään salaisina, koska niiden vuotamisessa on tietoturvariski.

Saat luotua minkä tahansa tietokannan luomisen osaavan tunnuksen kirjautumalla MariaDB:hen ja komentamalla:

GRANT ALL ON *.* TO 'tunnus'@'localhost' IDENTIFIED BY 'salasana';

WordPressin asettaminen

WordPress on vielä asetettava. Silloin kysytään tutut kysymykset urlista, blogin nimestä, adminin sähköpostiosoitteesta jne.

wp core install --prompt

Tässäkin tiedot voidaan antaa suoraan komennolle:

wp core install --url='https://www.example.com' --title='Blogin nimi' --admin_user='admin-tunnus' --admin_password='salasana' --admin_email='email@example.com'

Virheestä /usr/sbin/sendmail ei tarvitse piitata. Se johtuu vain siitä, että sähköposteja välittävää järjestelmää ei ole vielä asennettu.

Oikeudet kuntoon

Tehdään vielä pakolliset kevätjuhlaliikkeet tiedosto- ja hakemisto-oikeuksien kanssa.

Varmistetaan, että webhakemiston omistaa webserveri.

chown -R www-data:www-data /var/www/eksis.dev/public_html
  • Jos saat WordPressin hallinnassa, asetuksia säätäessä tai lisäosia asetettaessa, pyynnön antaa FTP-tunnukset, niin kyse on siitä, että wp-admin ja wp-contest hakemistojen omistajuus on jäänyt tai muuttunut rootille.

Varmista, että olet edelleen virtual hostin hakemistossa. Jos et ole, niin siirry sinne:

cd /var/www/eksis.dev/public_html

Asetetaan luku- ja kirjoitusoikeudet:

find . -type f -exec chmod 644 {} \;; find . -type d -exec chmod 755 {} \;

Kirjaudu WordPressin hallintaan ja muuta osoiterakenne. Testitilanteessakin on ehkä helpointa kun käyttää suoraan artikkelin nimeä ilman kategorioita sun muita.

Lisäosien asennus massana

Lisäosia on helppo asentaa massana, mutta siihen tarvitaan pieni skripti.

nano /usr/local/bin/wp-plugins

Kopioi siihen tämä:

Tehdään siitä suoritettava:

chmod 755 /usr/local/bin/wp-plugins

Skriptissä on yksi kohta, joka on muutettava. Laita riville WPPATH=/var/www/html virtual hostisi oikea polku – minulla se olisi esimerkiksi /var/www/eksis.dev/public_html

Kohdassa WPPLUGINS=( on listattuna asennettavien lisäosien slugit. Slug on sama kuin lisäosan hakemiston nimi tai jos kurkkaat wordpress.org sivustolta lisäosaa, niin slug on urlissa. Esimerkiksi Akismetin url on https://fi.wordpress.org/plugins/akismet/ jolloin sen slug on akismet.

Listaa saa muuttaa. Esimerkissä ovat ne pluginit, jotka lisään aina kaikkiin omiin projekteihini. Sinulla saattaa olla toiset tarpeet.

Kun annat komennon wp-plugins niin lisäosat annetaan ja aktivoidaan.

Urakka on valmis?

Nyt sinulla on WordPress asennettuna ja loppu on sitä mihin meneekin aikaa: teeman asettaminen ja säätäminen, lisäosat jne. Puhumattakaan siitä oleellisimmasta: sisällön tekeminen.

Kun saat tekemiseen hieman varmuutta, niin tämä on ehdottomasti nopein ja mutkattominen tapa asentaa WordPress. Aikaa nollasta kirjautumisvalmiiseen WordPressiin menee muutama minuutti.

Seuraavaksi aletaan tekemään nopeutta.