Tässä artikkelissa kuvaan LAMP-palvelinympäristön ja WordPress-sisällönhallintajärjestelmän asennuksen Ubuntu Server 11.10 ympäristössä. Lisäksi asennan WordPressiin yhden lisäosan, ja otan Permalinksit käyttöön.

1. 1 Tehtävänanto

Lainaus kurssin Moodle-sivuilta:

  • Asenna WordPress. Boottaa liverompulta, niin voit tehdä asennuksen aivan alusta.

Lisäksi kaksi seuraavista:
– Asenna uusi wp teema
– Asenna uusi wp plugin
– Ratkaise “Työasemat ja tietoverkot 25″ koe
– Ota PermaLinks käyttöön
– Kirjoita oma wp-teema
– Kirjoita oma wp-plugin

2. 2 Testiympäristö

Aiemmin tällä viikolla hankin käyttööni uuden jannewaren.fi -domainin Viestintävirastolta ja virtuaalipalvelimen Linodelta. Olen aikeissa siirtää tämän blogin sinne, lähinnä harjoituksen ja edellisen palveluntarjoajan (Suncomet) hitauden takia. Haluan myös hallinnoida palvelinta kokonaan, eli siirryn webhotellipalvelusta virtuaalipalvelimeen. Toki voisin siirtää myös vanhan domainnimeni jannewaren.eu uudelle palveluntarjoajalle, mutta päätin kuitenkin vielä vaihtaa .fi domainiin. Vaihdos ihan jo senkin takia että jannewaren.eu on rekisteröity suoraan Suncometin kautta, enkä jaksa alkaa selvittämään mitä tarvitsen siirtääkseni sen johonkin hallinnoidakseni sitä itse.

Teen siis harjoituksen Linoden virtuaalipalvelimella olevalla Ubuntu 11.10 käyttöjärjestelmällä johon olin tietysti yhteydessä ssh:n yli. Mitään lisäpaketteja ei ole tässä vaiheessa asennettu, joten pääsen aloittamaan aivan alusta. En tosin ihan täysin alusta, sillä en asentanut Ubuntua itse, vaan valitsin Linoden valmiin Ubuntu 11.10 -paketin joka asentui webbikäyttöliittymästä muutamassa minuutissa. Tästä johtuen jotain asetuksia ja paketteja on toki valmiina enemmän kuin itse asentaessa. En kuvaa virtuaalipalvelimen pystytystä Linodella sen tarkemmin, mutta täytyy kyllä sanoa että on kyllä hemmetin hyvä systeemi: tilauksesta ssh:lla sisäänkirjautumiseen kesti ehkä 10 minuuttia.

3. 3 Asenna WordPress

3.1. 3.1 LAMP

Wordpressin asennusta varten tarvitaan vielä Apache, MySQL ja PHP – Linux meillä on jo. Seurasin tässä Linoden ohjetta. Koneen hostnamen ja FQDN:n (fully qualified domain name) asetin jo eilen ja ne näyttävätkin olevan nyt kunnossa.

root@limia:~# hostname
limia
root@limia:~# hostname -f
limia.jannewaren.fi

1) 3.1.1 Apache

Seuraavaksi asensin apachen komennolla apt-get install apache2 ja totesin toimivuuden:

Asennuksen jälkeen Apache tarjoilee siis sivuja hakemistosta /var/www/ eikä tätä tietenkään haluta. Nyt en kuitenkaan ole tekemässä tunneilta tuttua systeemiä jossa laitetaan userdir päälle ja kaikki käyttäjät voivat tarjoilla sivujaan kotihakemistoistaan, vaan haluan sivut nimenomaan jonnekkin muualle kuin käyttäjän kotihakemistoon. Teen harjoituksen ollessani roottina sisällä, koska se oli Linoden oletusasetuksilla enabloitu enkä ole vielä jaksanut selvittää miten lisään toiselle käyttäjänimelle sudo-valtuudet.

Tulen siis käyttämään palvelinta www.jannewaren.fi ja mahdollisten alidomainien tyyliin kuvat.jannewaren.fi hostaamiseen. Lisäksi saattaa hyvin olla, että tulevaisuudessa hostaan palvelimella muitakin hyvin pieniä ja vähällä käytöllä olevia nettisivuja (kuitenkin sellaisia joilla on oma domain), näillä sivuistoilla on mahdollista että jonkun muunkin pitäisi päästä sivuja säätelemään ssh:n yli, joten en halua että kaikki sivut ovat oman käyttäjätunnuksenikaan kotihakemistossa. Niinpä päädyin ohjeen ehdottamaan ratkaisuun jossa sivuja tarjoillaan /srv/www/ hakemiston alta. Pikaisen Googletuksen (pathname.com) jälkeen näyttää siltä että tuo /srv hakemisto kuuluu hakemistonimien standardiin ja sieltä kuuluisi oikeasti tarjoilla järjestelmän sisältävät “data servicet” joiksi taidan nettisivut laskea. Tästä poiketen Ubuntussa ne tarjoillaan oletuksena hakemistosta /var/www/ jota taas FHS (filesystem hierarchy standard) ei ainakaan tuon löytämäni sivun mukaan sisällä.

Seurasin siis Linoden ohjetta ja loin uuden tiedoston Apachen VirtualHostin conffaukselle näin:

Tässä välissä huolestuin siitä, että palvelin tarjoilee samassa osoitteessa jannewaren.eu kahta eri hakemistoa (srv/www/jannewaren.fi/public_html ja oletuksena oleva /var/www) joten otin tuon oletussivuston pois päältä. Oletussivuston löysin katsomalla hakemiston /etc/apache/sites-enabled/ sisältöä. Otin siis default-sivuston pois päältä komennolla a2dissite default näin..

..ja totesin toimivuuden (tai siis toimimattomuuden) näin:

Seuraavaksi omassa asetustiedostossani olevat polut pitää tietysti luoda jotta homma toimii, tein sen mkdir -komennolla ja sivuston laitoin päälle a2ensite komennolla näin..

..ja testasin vielä toimivuuden luomalla tekstitiedoston nyt enabloituna olevan sivuston hakemistoon /srv/www/jannewaren.fi/public_html/ touch-komennolla. Kuten allaolevasta näkyy, homma lähti pelittämään kerralla.

2) 3.1.2 MySQL

Seuraavaksi edessä oli MySQL-palvelimen asennus. Seurasin tässäkin Linoden ohjetta, ja siitä löytyikin turvallisuutta parantavia neuvoja. Asensin ensin mysql-serverin komennolla apt-get install mysql server ja ajoin sitten ohjeen ehdottaman komennon mysql_secure_installation..

..joka näyttikin tekevän ihan järkeviä asioita, esimerkiksi sen ettei MySQL:n root-käyttäjä voi kirjautua muualta kuin localhostista, ja muuta sellaista. Toivottavasti phpmyadmin toimii silti.. Testasin nyt tässä vaiheessa MySQL:n toimivuuden ihan vain komentoriviltä loggaamalla sisään ja luomalla valmiiksi WordPressiä varten käyttäjän ja tietokannan näin ohjeen mukaan loggaamalla MySQL:ään sisään ja antamalla komennot:

create database esimerkkitaulu;

grant all on esimerkkitaulu.* to 'esimerkkikäyttäjä' identified by 'esimerkkisalasana';

flush privileges;

Näistä en siis ottanut kuvankaappausta, koska palvelin on ihan julkisessa verkossa eikä kenenkään ole tarpeen tietää taulujeni tai käyttäjieni nimiä. Tässä kohtaa olisi tietysti ollut dokumentoinnin kannalta hyötyä tehdä kaikki vain LiveCD:llä, mutta motivaation kannalta näin on paljon parempi :) Joka tapauksessa, komentoriviltä MySQL toimi ok saadessani komennoille aina palautteen “Query OK, 1 row affected (0.00 sec)“.

3) 3.1.3 PHP

Seuraavaksi piti asentaa PHP ja seurasin jälleen kerran Linoden ohjeita oppiakseni myös jotain uutta. Ohjeissa kehotettiin asentamaan sekä php5 että php-pear, ja myöhemmin myös php5-mysql (tätä tietysti tarvitaan MySQL-yhteyden saamiseen) ja php-suhosin (parantaa turvallisuutta). Asensin ne kaikki kerralla komentamalla apt-get install php5 php-pear php5-mysql php5-suhosin ja kaikki vaikutti asentuvan ok. Käynnistyn Apachen välissä uudelleen komennolla /etc/init.d/apache2 restart ja testasin toimivuuden pelkästään rivin..

<?php phpinfo(); ?>

..sisältävällä php-tiedostolla:

Seuraavaksi tarkistin vielä PHP:n asetuksia Linoden ohjeen mukaan tiedostosta /etc/php5/apache2/php.ini ja muutinkin joitakin asetuksia oletuksista näihin arvoihin:

memory_limit = 64M

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

error_log = /var/log/php.log

Lopuksi uudelleenkäynnistin vielä Apachen saattaakseni muutokset voimaan, ja testasin samaa phpinfo-sivua joka toimi edelleen.

  Aikaa osioihin 1 – 3.1 meni noin 2 tuntia dokumentoinnin kanssa. Saman homman olisi tehnyt toki muutamassa minuutissa muutamalla komennolla niinkuin on ennenkin tehty, mutta tällä kertaa halusin nimenomaan perehtyä siihen miten Linode suosittelee asioita tehtävän, ja kyllähän sieltä niitä uusiakin asioita löytyi.

3.2. 3.2 WordPress

Sitten itse aiheeseen, eli asennetaan WordPress. Aloitin lataamalla WordPressin ulkomuistista komennolla wget wordpress.org/latest.tar.gz, purkamalla paketin komennolla* tar*, siivoamalla turhat tiedostot komennolla rm ja siirtämällä WordPressin tiedostot yhden kansion alemmas näin:

Mokasin kuitenkin tuon tiedostojen siirron, ja kuten kuvasta näkyy päädyin siihen että kaikki WordPressin tiedostot ja hakemistot olivat yhden tason liian alhaalla hakemistossa /srv/www/jannewaren.fi/. Graafista käyttöliittymää käyttäen siirto takaisin public_html hakemiston alle olisi jo tehty, mutta nyt piti pysähtyä vähän pohtimaan. Eli minulla oli nyt hakemistossa sekä hakemistoja että tiedostoja jotka pitäisi siirtää public_html:n alle yhtä hakemistoa (ja public_html:ää) itseään lukuunottamatta. Yritin keksiä jotain nerokasta ratkaisua tyyliin mv !(logs) mutta luovutin ja siirsin kaiken public_html:n alle ja äkkiä logit takaisin yhtä alemmas.

Seuraavaksi ohjasin selaimeni osoitteeseen http://jannewaren.fi/ ja sainkin eteeni tutun näköisen WordPressin asennusohjelman. Kuvasin itse WordPressin asennusta edellisen viikon kotitehtävässä kohdassa* 3.3 MySQL käyttäjille* joten en nyt ottanu kuvankaappauksia tai käy asiaa sen enempää. Sain WordPressin asennettua ongelmitta ja pian olinkin jo Dashboardilla:

  Aikaa tähän osioon meni dokumentoinnin kanssa noin tunti, tosin osan siitä tutkin ihan mielenkiinnosta heti access.logiin ilmestyneitä yrityksiä päästä esimerkiksi hakemistoihin /web/phpmyadmin/, /mysqladmin/, /websql/ ja /phpmyadmin-X.X.X (useita versionumeroita). Ja IP josta yritettiin näytti whois:n perusteella tulevan Kiinasta. Mutta eipä ollut koko phpmyadminia asennettuna tai muitakaan hakemistoja mihin yritti :)

4. 4 Asenna lisäosa

Halusin asentaa WordPressiini lisäosan jolla voin kätevästi laittaa sivuston “pois päältä” siksi aikaa kun siirrän vielä artikkeleita toisesta WordPressistä ja rakennan teemaa, ja voin kätevästi julkaista sivuston vasta kun se on valmis. Tähän tarkoitukseen löytyy lukemattomia lisäosia hakusanoilla “maintenance mode” ja “coming soon”, ja valitsin niistä ihan hyväksi aiemmassa käytössä osoittautuneen Ultimate Coming Soon Pagen. Latasin ja purin lisäosan palvelimelle WordPressin plugins-hakemistoon näin:

Kun lisäosa on purettu oikeaan hakemistoon eli wp-content/plugins, se ilmestyy automaattisesti WordPressin hallintapaneelin Plugins-näkymään..

..eikä tarvitse enää muuta kuin klikata “Activate” ja käydä vielä laittamassa lisäosan toiminta päälle sen omalta Settings-sivulta:

Ja WordPressin oletusteema vaihtui asettamaani Coming Soon -sivuun:

  Aikaa tähän osioon meni dokumentoinnin kanssa noin 20 minuuttia.

Tein tämän harjoituksen jo tunnilla pikaisesti, mutta koska haluan tämän kuitenkin käyttöön niin teen sen uudestaan. Permalinksia käyttäen saa siis kustomoidut ja “hienot” osoitteet käyttöön. Esimerkiksi tämän kotitehtävän osoite oletusasetuksilla olisi http://jannewaren.eu/ict4tn003/?p=125, mutta Permalinksiä käyttäen olen ottanut sellaisen asetuksen käyttöön että osoite on paljon selkeämpi ja informatiivisempi http://jannewaren.eu/ict4tn003/kotitehtava-viikko-6/.

Wordpressin netissä oleva dokumentaatio WordPress Codex on todella kattava ja paras paikka etsiä tietoa WordPressin käytöstä, joten suuntasin osoitteeseen http://codex.wordpress.org/Using_Permalinks josta olin jo tunnilla katsonut ohjeita Permalinksin käyttöönottoon. Haluamiani “Pretty Permalinksejä” varten tarvitsen

  • Moduulin* rewrite* käyttöön Apachessa
  • Apachen asetuksissa FollowSymLinksin ja AllowOverriden päälle
  • .htaccess -tiedoston WordPressin juureen

Ensimmäisenä otin Apachen moduulin rewrite käyttöön userdir-moduulin kanssa opitulla tavalla komennolla a2enmod rewrite:

Seuraavaksi muokkasin Apachen asetuksia sivustoni osalta näin:

Ja lopuksi otin Permalinksit WordPressin asetuksista käyttöön:

Ja loin WordPressin ohjeiden mukaisen .htaccess tiedoston:

Ja testasin toimivuutta kirjoittamalla testiksi artikkelin ja klikkaamalla sitä blogin etusivulta. Näyttäisi toimivan hyvin.

  Aikaa tähän osioon meni dokumentoinnin kanssa noin 30 minuuttia.