tavis nörttimaailmassa

EksisONE - artikkeleita ja ohjeita nörttimaailmasta

Moodle: Asennus

Moodle on maailman eniten käytetty LMS-ohjelmisto, eli verkkokoulutusohjelma. Se ei ole sama asia kuin webinaari, vaikka niitä yhdessä ja ristiin käytetäänkin. LMS on lyhenne sanoista Learning Management System ja se on paikka tai tapa järjestää ja hallita verkkokursseja. Webinaari taasen on luento, jota seurataan etänä. Webinaari voi toki olla osa LMS-verkkokoulutusta, mutta webinaareista puuttuu verkkokursseihin liittyvät asiat, kuten oppitunnit, suositusten seuranta ja oppilaiden hallinta. Moodle on alunperin tehty anglotyyppisesti korkeakoulukäyttöön ja se näkyy sen hallinnassa, niin hyvässä kuin pahassa.

Moodlesta tekee suurimman se, että se on käytössä käytännössä melkein jokaisessa korkeakoulussa ympäri maailman. Lisäksi se on otettu laajasti käyttöön alemmissakin oppiasteissa, myös Suomessa. WordPress-maailmassa on oikeastaan enemmän vaihtoehtoja järjestää verkkokoulutuksia. Käytännössä valinta kohdistuu kahteen, joko Autommaticin tekemään Senseihin tai LearnDash LMS:ään – kumpikin on maksullinen ja molempia kokeilleena LearnDash on valovuoden Senseitä edellä, jossa haiskahtaa mailin päähän eräänlainen pakkopulla; ollaan tehty, että voidaan mainostaa hieman lisää WordPressin käyttömahdollisuuksia.

Verkkokoulutus vai muu ratkaisu

Kannattaa ylipäätään pysähtyä miettimään mitä aidosti tarvitsee. Tarvitsetko erilaisia tapoja toteuttaa oppitunti, tai ovatko erityyppiset kokeet välttämättömiä? Jos kyllä, niin silloin tarvitset verkkokoulutusohjelman ja asennat Moodlen.

Jos tarve on esittää yhdellä tai peräkkäisillä sivuilla videota, ääntä ja tekstiä, niin et tarvitse minkäänlaista LMS-ratkaisua. Asenna jokin membership-lisäosa ja pääset kaikista helpoimmalla.

Jos tuon lisäksi tarvitset jonkun tavan rajoittaa etenemistä, eli kaikki on suoritettava ehdottomasti järjestyksessä, sekä mahdollisesti jonkun tavan päättää koulutus, niin tarvitset LMS:n ja silloin WordPress-pohjainen saattaa olla järkevä valinta.

WordPress vai Moodle

WordPress-pohjaisten käytölle on yksi vahva perustelu: ne kytkeytyvät saumattomasti verkkokauppaan, oli se sitten Woocommerce tai Eeasy Digital Downloads. Moodle taasen vaatii erillisen (maksullisen) lisäosan, jotta koulutukseen liittyminen saataisiin automatisoitua. Se toimii pääosin hyvin, mutta tässä tulee hieman vastaan järjestelmien erilaisuus: WordPressissä käyttäjätunnus saa olla myös isoilla kirjaimille, kun taasen Moodle vaatii ehdottomasti pienet. Tuo on toki ratkaistavissa kahdella tapaa, jolloin WordPressisä pakotetaan sähköpostosoite tunnukseksi tai sitten tehdään pientä koodin puukotusta ja pakotetaan merkit pieniksi.

Liittyminen Moodlen koulutuksiin on mahdollista toteuttaa myös muilla tavoilla, joka tavis-pohjalla rajoittuu joko käyttäjän lisäämiseen Moodleen käsin tai sitten antamalla käyttäjälle salasana, jolla hän voi itse kirjautua koulutukseen.

Moodlen ylläpito on hivenen työläämpää kuin WordPressin, sillä jo pelkästään päivittäminen vaatii käsityötä eikä todellakaan onnistu yhden nappulan klikkaisulla. Samaten lisäosien hallinta on melkoisen paljonkin erilaisempi kuin WordPressissä, mutta sen oppii jokainen muutamassa minuutissa. Sen sijaan teemojen hallinta on mutkan takana ja aika monet aloittelijoiden kysymykset koskevatkin teeman vaihtoa tai poistamista.

Teemat tai oikeammin niiden vähyys on Moodlen heikkous. Niitä on vähän ja maksullisia vielä vähemmän. Tai ehkä se onkin etu, koska niin moni osaa suoraan käyttää Moodlea, koska on luultavasti tutustunut siihen jo omana kouluaikanaan. Pieni varoituksen sana: Moodle antaa hieman häivähdyksen 90-luvusta eikä ole todellakaan käytettävyyden huippu, ei opiskelijalle eikä opettajalle. Mutta sen sijaan saa todella paljon sellaisia työkaluja, joita WordPress-maailmassa ei todellakaan ole.

WordPressissä teemakysymystä ei ole, koska lisäosat noudattavat (tai pitäisi noudattaa) sivuston teemaa. Jos jostain oudosta syystä sinulle on täysin yhtenäinen ulkonäkö huomattavan tärkeää, niin sitten et voi käyttää Moodlea.

WordPressiin rakennettu LMS kuomittaa koko sivustoa ja jopa Suomen kalleimmassa ”vakio-webhotellissa” WordPress kaatui, kun artikkeliosiossa oli samanaikaisesti noin 50 kävijää, verkkokaupassa tusina ja verkkokursseilla muutaman kymmentä. Sen voi kiertää käyttämällä alidomainta erillisellä WordPress-asennuksella, jossa tietokannoissa on käyttäjät yhdistetty, mutta silloin palataan taas vaatimukseen normaalia korkeammasta teknisestä osaamisesta ja kyvystä sekä halusta käyttää Googlea. Joten jos 60 euroa vuodessa on sinusta paljon, niin mieti kahteen kertaan tarvitsetko aidosti varsinaista verkkokoulutusta. Mutta jos 40 euroa kuukaudessa ei ole kestämätöntä, niin silloin ehdottomasti paras vaihtoehto on virtuaaliserveri DigitalOceanilta. Silloin sinun ei tarvitse tehdä valintaa tekniikan pullonkaulojen takia.

Jos WordPressin päivittäminen tuntuu mahdottomalta urakalta, niin Moodle ei todellakaan ole sinun juttusi. Sen sijaan jos sinulla ei ole ongelmaa hieman selvittää asioita ja opetella, niin Moodlen päivittäminen ei ole mikään korkea kynnys.

Valinta voidaan kiteyttää tähän listaan:

  • jos tekniikka pelottaa, niin WordPress
  • jos et tarvitse kokeita, niin WordPress
  • jos et tarvitse monimutkaisia kurssirakenteita, vaan eteneminen on oppitunnista toiseen, niin WordPress
  • jos sinulla ei ole kymmeniä käyttäjiä yhtä aikaa, niin WordPress

Jos vastaus on joitain muuta kuin kyllä yhteenkään kohtaan, niin sitten Moodle.

Moodlen asentaminen

Esimerkit ovat virtuaaliserverille, mutta eivät ne käytännössä eroa webhotellista mitenkään. Suurin ero tulee siinä, että hotellissa Moodlen asennuspaketti siirretään FTP:llä, kun virtuaaliserverillä se saadaan hoidettua hieman toisella tavalla ja paljon nopeammin. Webhotellissa tietokanta tehdään tyypillisesti cPanelissa, kun virtuaalipalvelimella homma hoituu MySQL:ssä.

Oletuksena on Ubuntu (19.04, mutta sillä ei ole suurta merkitystä). PHP on tässä asennuksessa 7.2 joten muista tarkistaa tarvitsemasi versio. Webpalvelin on Apache2, mutta toki nginx ja muut kelpaavat Moodlelle. Tietokantana on MySQL, mutta toki muutkin toimivat – tosin joudut sitten muokkaamaan esimerkkejä.

Ja tyypilliseen tapaan shellin esimerkit ovat root-oikeuksilla, joten jos käytät omaa tunnustasi, niin muista sudo tai su sopivissa kohdissa.

Asennetaan pari Moodlen tarvitsemaa pakettia. Ja taas, aloitetaan järjestelmän päivittämisellä.

apt update
apt dist-upgrade
  • Asenna nämä, jos ei jo ole:
apt install aspell graphviz php7.2-curl php7.2-gd php7.2-intl php7.2-ldap php7.2-pspell php7.2-soap php7.2-xml php7.2-xmlrpc php7.2-zip

Webhotellissa piipahdetaan cPanelissa katsomassa, että tarvittavat moduulit on asennettu ja jos ei ole, niin ne otetaan käyttöön rasti-ruutuun tekniikalla.

  • Käynnistä Apache uudestaan:
systemctl restart apache2

Tiedostot ja hakemistot paikalleen

Jos sinulla ei ole vielä domainin vaatimaa hakemistorakennetta, niin tehdään se.

mkdir -p /var/www/EXAMPLE.TLD/public_html

Tietenkin vaihdat example.tld ja websivujen hakemiston sellaiseksi mitä käytät. Jatkossa viittaan siihen muodolla /var/www/html. Jos sinulla on ajatuksena asettaa Moodle omaan hakemistoon, eli url olisi esimerkiksi https://www.example.com/moodle/ niin moodle-hakemistoa ei tarvitse erikseen vielä tehdä. Se hoituu asennuksen aikana.

  • Laitetaan tiedosto-oikeudet
chmod -R 777 /var/www/html
chown -R www-data:www-data /var/www/html

Tuo avaa webkansion maailmalle. Pääsääntöisesti se ei ole hyvä idea, mutta pakko jos haluat asentaa Moodlen sivustolta yhdellä klikkaisulla lisäosia, tai saada helpommalla päivitettyä. Oikeuksia voi kiristää myöhemminkin ja aina tarpeen mukaan lieventää.

Moodle tarvitsee oman data-hakemiston. Tehdään sellainen. Sitä ei anneta webhakemistoon, vaan pykälää ylöspäin. Turvallisuuskysymys, sillä silloin siihen ei päästä netin kautta käsiksi.

mkdir /var/www/moodledata

Laitetaan moodledatan oikeudet kohdalleen.

chown -R www-data:www-data /var/www/moodledata
chmod -R 0770 /var/www/moodledata

Ladataan Moodlen paketti. Vaihtoehtoja on muutama.

  • Jos siirrät FTP:llä, niin mene sivulle https://download.moodle.org/releases/latest/ ja lataa paketti. Siirrä se palvelimelle siihen hakemistoon, jonne Moodle tulee, ja pura.
  • Jos sinulla on git asennettuna ja osaat sitä käyttää, niin komenna
    git clone -b MOODLE_38_STABLE git://git.moodle.org/moodle.git

    Tarkista versio, vaikka toki asennuksen saa myöhemmin päivitettyäkin.

Käytetään kuitenkin sitä helpointa tapaa. Taas kerran, tarkista versio. Polku on ollut ikuisuuksia sama, mutta tiedoston versionumero vaan vaihtuu.

curl https://download.moodle.org/download.php/direct/stable38/moodle-latest-38.tgz > moodle.tgz
  • Puretaan paketti. Muista laittaa loppuun kohdehakemisto muodossa  -C /var/www/html tai mitä sitten käytätkin, jos latasit Moodlen tgz-paketin jonnekin muualla.
tar -xvzf moodle.tgz
  • Tuo purkaa tiedostot alihakemistoon moodle. Jos se sopii sinulle, ja sinulla on vaikkapa WordPress juuressa ja haluat Moodlen näkyvän alihakemistossa, niin ohita seuraava. Itse haluan, että Moodle on domainin juuressa, joten siirretään tiedostot ja hakemistot pykälää ylöspäin.
rsync -avh moodle/ /var/www/html/

Hakemisto moodle on edelleen olemassa samalla sisällöllä. Sen voi halutessaan poistaa.

 rm -rf moodle

Ja kuten aina komennon rm -rf kanssa, niin ollaan hieman hereillä mitä poistetaan ja mistä, se ei varmistele.

Tietokanta

Laitetaan MySQL:ään pari asetusta kohdalleen.

nano /etc/mysql/mysql.conf.d/mysqld.cnf

Lisää lohkon


[mysqld]
#
# * Basic Settings
#

loppuun rivin skip-external-locking jälkeen nämä:

default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda

Tallenna ja käynnistä MySQL uudestaan:

systemctl restart mysql
  • kirjaudutaan MySQL:ään
mysql -u root -p
  • tehdään tietokanta
create database MOODLE default character set utf8mb4 collate utf8mb4_unicode_ci;
  • tehdään käyttäjä ja annetaan oikeudet
grant all on MOODLE.* to 'TUNNUS'@'localhost' identified by 'SALASANA';
  • kerrotaan muutokset MySQL:lle ja poistutaan
flush privileges;
exit;

Moodlen asettaminen

Moodlen asetukset voidaan antaa kahta kautta: komentorivillä tai selaimen kautta. Komentorivi on nopeampi ja siinä ei tule niin helposti time-outit vastaan. Selain taasen on mukavamman näköinen plus – tämä kuulostaa pahalta, mutta on realismia – selainasennus on enimmäinen virheenpaljastuskoe. Jos asennuksesta puuttuu selainversiossa tyylit, eli se on tympeän näköinen, niin asennus ei tule koskaan onnistumaan – se tyssää viimeistään silloin kun pitäisi asettaa adminin salasana. Se on sitten oma juttunsa, että mitä silloin voi tehdä, koska aletaan penkomaan serveritasolla esimerkiksi PHP:n error-logeista mitä on pielessä.

Niitäkin tapauksia on ollut, että selainasennus ei onnistu, mutta homma on saatu toimimaan komentorivin kautta. Jos olet jo ehtinyt kokeilla selainasennusta ja syystä taitoisesta lähdet ikäänkuin tyhjältä pöydältä uudestaan liikkeelle, niin kaksi asiaa täytyy tehdä:

  • public_html hakemistossa ei saa olla config.php tiedostoa, koska se on Moodlen mielestä merkki siitä, että asennus on jo tehty, eikä Moodle suostu ylikirjoittamaan sitä
  • tietokanta täytyy olla tyhjä; sama juttu, jos sinne on jo kirjoitettu mitään, niin Moodlen mielestä asennus on tehty, eikä se etene

Asensi kummalla tahansa tavalla, niin hakemistojen omistajuus täytyy olla www-data (apache osassa linuxjakeluja) ja Moodlella täytyy olla kirjoitusoikeus hekemistoihin.

CLI komentoriviltä

CLI on usein se helpoin ja nopein tapa, eikä vähintään siksi, että sinulla on jo shell auki. Jos et pääse shelliin, niin CLI ei ole sinulle vaihtoehto. CLI löytyy admin-hakemiston takaa, eikä sitten suinkaan keskitetysti, jos sitä aiot myöhemminkin käyttää – asioita on ripoteltu sinne sun tänne; Moodle ei ole kovinkaan ylläpitoystävällinen.

cd /var/www/html/admin/cli

Aloitetaan asettaminen. Manuaalit suosittavat tätä:

sudo -u www-data /usr/bin/php install.php

Minulla toimi ilman php:n polkua ja homma onnistuu myös ilman sudo -u www-data (tai apache, riippuen järjestelmästäsi) komentoa, mutta silloin joudut asettamaan omistajuuden Moodle-hakemistolle myöhemmin uudestaan. Tai sitten et. Minulla on nimittäin käynyt kummallakin tavalla.

Joten tämäkin onnistuu:

php install.php

Ensimmäiseksi kysytään kieltä. Jos haluat pitää englannin, niin etene enterillä. Suomeksi asennuksen haluavat antavat fi ja painavat enteriä.

Kysymykset ovat melkoisen itseäänselittäviä, kuten sivuston osoite, hakemistojen paikat, sivuston nimi, tietokannan vaatimat tiedot jne. Päivitysavaimen kysyly voi tuntuu vieraalta. Se on erillinen salasana, joka täytyisi antaa päivitysten ajamista varten. Se on turvallisuuslisä, koska osassa päivityksiä päivitysten ajaminen näkyy sivustolle tuleville, vaikka he eivät mitään pitäisi pystyä ajamaankaan. Joten anna se ja ehkä se kannattaisi olla joku muu kuin adminin salasana.

Yhdessä kohdassa on pieni käännösvirje ja törmäät siihen, jos fi on asetettuna. Kun sinulta pyydetään käyttöehtojen hyväksymistä ja tarjotaan vaihtoehdoksi y (kyllä) tai n (ei) niin y ei kelpaa – anna mieluummin k. Ehkä tuo jossain vaiheessa korjataan, mutta en pidättäisi hengitystä, koska se on ollut noin jo useamman version.

Se, että käyttöehtoja kysytään vasta lopussa, ei heti ensimmäiseksi, on minusta aina ollut outoa – siihenhän on pakko vastata myöntävästi, koska muutoin asennus lopetetaan. Eli asennekysymys minulle, ei käytäntöön vaikuttava asia.

Kun asettaminen on valmis, niin periaatteessa pääset kirjautumaan tekemälläsi admin-tunnuksella osoitteessa http(s)://www.domain.tld – periaatteessa siksi, että kirjautuminen ei onnistu SSL-sertifikaatilla ilman pientä config.php tiedoston muokkausta. Moodle ei nimittäin suostu/osaa huomioida SSL:n käyttöä automaagisesti – tai ainakaan versioon 3.7.x asti ei osannut, aika näyttää mihin tuoreemmat versiot kykenevät. Joten jos saat too many redirects errorin, niin se johtuu SSL:stä.

Avaa config.php:

nano /var/www/html/config.php

Lisää tämä johonkin kohtaan, vaikka samaan rotlaan heti polkujen jälkeen:

$CFG->sslproxy = true;

Tallenna ja sinun pitäisi päästä kirjautumaan, ja aloittamaan varsinainen työ.

Selain

Siirrytään selaimelle. Jos olet jo ottanut domainin käyttöön, niin avaa sivu

http://www.example.com

Tai jos odottelet vielä nimipalvelimia, niin

http://<ip-osoite>

Voit myös käyttää https-osoitetta, jos olet jo asettanut SSL-sertifikaatin.

Pääset Moodlen asetuksiin.

  • Ensimmäiseksi asetat kielen. Valinta voisi olla Suomi (fi).
  • Seuraavaksi pyydetään varmistamaan osoite ja polut. Niiden pitäisi olla oikein.
    Älä vaihda urlissa vielä SSL-sertfikaatin mukaiseen https-alkuun. Tehdään se myöhemmin erikseen.
  • Kerro tietokannan ajuri. Se on luultavasti MySOL, mutta jos tiedät, että sinulla on MariaDB käytössä, niin tietysti silloin valitset sen.
  • Anna tietokannan tiedot, jotka vähän aikaa sitten loit.
    • tietokannan isäntä on localhost – paitsi niissä tilanteissa, jossa tietokanta on jollain muulla serverillä, ja silloin tiedät minkä IP-osoitteen laitat
    • tietokannan nimi, käyttäjä ja salasana ovat luomasi
    • taulukon etumerkin kanssa saat halutessasi samaan kantaan useamman tietokannan; jos olet koskaan asentanut WordPressin, niin tämä on ihan sama. Voit hyväksyä tarjotun tai laittaa omasi. Sillä ei ole mitään turvallisuusmerkitystä, on vaan informatiivinen, jolloin tiedät mitkä taulut kuuluvat mihinkin tietokantaan. Jos olet webhotellissa, niin sinulla saattaa olla määrätty etumerkin muoto. Tarkista esimerkiksi palvelintarjoajan sivuilta tai cPanelista
    • database port ja unix-kanta jätetään tyhjäksi, jos et nimenomaisesti tiedä niitä tarvitsevasi
  • Moodle luo config.php tiedoston (jos wordpress on tuttu, niin se vastaa täysin wp-config.php tiedostoa). Jos saat ilmoituksen, että se ei onnistunut ja kehoituksen muokata sitä käsin tarjotuilla tiedoilla, niin voit tehdä sitä. Tai palaat edelliseen ikkunaan ja korjaat Moodlen sisältävän hakemiston oikeudet 777 ja omistajaksi www-data;www-data (Ubuntussa).
  • Sinun on hyväksyttävä käyttöoikeudet. Toki ne kannattaa lukea, mutta ei niissä ole mitään ihmeellista ja pakko ne on hyväksyä.
  • Palvelintietojen yhteenveto kertoo onko kaikki hyvin. Muut kuin https pitäisi olla vihreällä ok-merkinnällä. Jos ei ole, niin selvitä voiko asialle tehdä jotain ja korjaa se. Paina sen jälkeen selaimen refresh-nappulaa tai F5 ja katso muuttuiko asia. Kun olen sitä mieltä, että voit jatkaa, niin klikkaa Jatka.
  • Saat pitkän luettelon omituisia nimiä, joiden alla on vihreässä palkissa Valmis! Jos ei ole, niin jokin on pielessä ja korjausneuvoja on mahdotonta antaa, koska se saattaa johtua mistä tahana. Mutta palaa takaisinpäin ja varmista, että sinulla on kaikki tarvittavat PHP-moduulit asennettuina, polut oikein ja tiedosto-oikeudet kohdallaan. Etene kun pääset.
  • Luo admin-tunnus ja anna tiedot. Joku nimi, salasana ja sähköpostiosoite ovat olennaisia. Kaiken muun saa myöhemmin laitettua tarpeen mukaan kohdalleen.
  • Anna etusivullakin näkyvät sivuston tiedot. Keksi jotain, nämä on muutettavissa myöhemmin. Viimeisenä kysytään itserekisteröitymisen sallimisesta. Älä salli vielä, vaikka ehkä ottaisitkin sen käyttöön. Spämmibotteja saa helpommallakin.
  • Rekisteröi sivustosi Moodle.org tietoon. Voit jättää tekemättäkin klikkaamalla skip, mutta silloin et saa automaattisesti tietoa uusista päivityksistä. Lisäksi lisäosien asentaminen moodle.org sivustolta suoraan ei onnistu. Joten pikku pakko rekisteröityminen on. Mutta hieman voit säätää kohdan Yksityisyys kanssa. Makuasia minkä ottaa, mutta huomasin, että kun kertoo kaikki tiedot, niin varsinkin Kaakkois-Aasian suunnalta tulee koputtelijoita aika paljon – pieni kiusa, jos on itserekisteröityminen sallittu.
  • Olet valmis ja pääset tutustumaan perusteisiin.

Cron

Moodle on hyvin riippuvainen cronista, järjestelmän sisäisestä kellosta. Sen on toimittava, tai oikeastaan mikään ei toimi automaattisella puolella.

Avaa cron – itse käytän root-tunnusta siihen, koska jos jossain säädössä Moodle-hakemiston omistajuus siirtyy rootille, niin www-data omistajana ei enää kykene ajamaan cronia; toisinpäin kylläkin toimii.

crontab -u root -e

Tämä ajaa cronin kerran minuutissa:

*/1 * * * * php -q /var/www/html/admin/cli/cron.php >/dev/null

Jos et pääse shelliin, niin joudut tukeutumaan ulkoisiin cron-palveluihin. Googleta, vaihtoehtoja on monta. Niissä on yleensä ilmaisversiossa rajattu käyntimäärät esimerkiksi kerran viiteen minuuttiin, joka sekin riittänee useimmille – mutta silloin esimerkiksi mailiin lähetettävät foorumipostaukset jne. lähtevät vain viiden minuutin välein.

Varnish

Yhä useampi virtuaaliserverin ylläpitäjä asentaa Varnishin. Mikä ettei, koska se lienee tehokkain välimuisti mitä virtuaalimaa päällään kantaa. Ongelmantynkää on siinä, että Varnish ei hyödytä Moodlea käytännössä yhtään. Itseasiassa voidaan jopa sanoa, että eräällä tavalla Moodle ei ole yhteensopiva Varnishin kanssa.

Kyse on Varnishin (ja kaikkien muiden reverse proxy ohjelmien) tavasta olla välimuistittamatta dynaamista sisältöä. Sitä ei voida välimuistittaa, koska se vaihtuu tekemisen, tilanteen ja käyttäjän mukaan. Ensimmäinen, joka tipauttaa Varnishin kyydistä pois, on cookiet. Evästeet on pakko olla sallittuna ja kun ne liikkuvat, niin Varnish ei välimuistita. Moodle kuitenkin tarvitsee cachea siinä kuin muutkin, mutta siinä se on tehty sisäisenä.

Toki voit asentaa Varnishin ja komentaa sen jättämään cookiet rauhaan, jolloin Moodle periaatteessa toimii. Paino sanalla periaatteessa, sillä Moodle ei kestä edes normaalisti Varnishissa tehtävää cookieiden muokkaamista, vakioimista.

Jos sinulla on virtuaalipalvelimella vain Moodle-sivusto, niin unohda Varnish. Se ei tee mitään. Sen sijaan Redis saattaisi toimiakin tietokannan ja php:n välimuistina, mutta sekin taitaa vaatia määrättyjä säätöjä, joihin ei sitten todellakaan löydy netistä ohjeita. Olen käyttänyt Redisiä eräällä tavalla pakasta revittynä, eikä se antanut mitään silminnähtävää etua ja koska Redis riiteli WordPressin kanssa turhan paljon, niin se sai lähteä. OPCache toiminee riittävän hyvin ja se useimmiten vakiona päällä muutenkin.

Jos sinulla on useampi domain samalla virtuaalipalvelimella, ja ehkä haluat saada käyttöön Varnishin kyvyn suodattaa liikennettä (ja samalla tukea Fail2bannia), niin asenna heti Varnish. Ainoa mikä täytyy muistaa, on että Moodlelle ei riitä useimmiten neuvottu tapa return(pass); cachen ohittamiseen, koska tuo ohittaa tosiaan vain cachen ja edelleen käsitellään cookieita, headereita jne. Käytä Moodlen domainin kohdalla mieluummin return(pipe); joka tekee Varnishista vain tyhmän proxyn, joka ei tee mitään.

Toki, jos osaat regexiä riittävästi, niin kykenet varmaan tekemään evästesäädöt niin, että Moodle on tyytyväinen. Minä en osaa. Ja jos saat Varnishin takaa Moodlen sivustona auki, mutta sisäänkirjoittauminen palaa koko ajan login-ikkunaan ja pyyntö salasanan palauttamisesta valittaa virheellisestä sessionkeystä, niin et osannut sinäkään…

Kun ei toimi

Moodle on monimutkainen ohjelmisto ja siinä on useampikin kohta, jotka voivat mennä rikki. Niiden selvittäminen voikin olla melkoisen työn ja tuskan takana.

Jos osoite valittaa liian useasta uudelleenohjauksesta, ja sinulla on SSL otettu juuri käyttöön, niin lisää config.php tiedostoon rivi $CFG->sslproxy = true;

Jos saat error 5xx tai jonkun muun vastaavan, joka kertoo, ettei sivustolle päästä, vaikka taatusti nimipalvelimet ovat kunnossa ja virtual host toimii, niin lähes aina syynä on Moodlen hakemiston ja/tai moodledata-hakemiston väärä omistajuus ja/tai oikeudet. Ne on oltava webserverillä, eli Ubuntun tapauksessa www-data. Moodledatan kirjoitusoikeudet on oltava 777 – joka ei ole ongelma, koska sitä ei milloinkaan pidetä html-hakemistossa.

Versio 3.8 toi mukanaan ongelman, jolloin alasvetovalikot eivät toimineet ja/tai tyylit olivat pielessä. Perussyy saattoi olla konflikteissa osan lisäosien kanssa, kuten äänihommia tekevän poodll:n suhteen, ja avun toi, kun esti javascriptin välimuistituksen laittamalla config.php tiedostoon rivin $CFG->cachejs = false;. Tuo ei kuitenkaan auttanut, kun päivitti versiosta 3.7.x versioon 3.8. Tämä kuitenkin korjaantunee ajan myötä, mutta kannattaa pitää kuitenkin mielessä.

Lähes aina ensimmäinen ohje ongelmissa on tyhjentää Moodlen oma cache. Kuten selaimen välimuistin tyhjentämisessä, niin apua saa todella harvoin, mutta koska se saattaa auttaa, eikä siitä ole sen suurempia ongelmia (selaimissa on kylläkin vaivaa, kun tyhjentää cookiet), niin se kannattaa tehdä. Välimuistin tyhjentämiseen on olemassa kaksi eri tapaa:

  • käyttää CLI:tä menemällä hakemistoon admin/cli ja komentamalla php purge-caches.php
  • poistamalla moodledata hakemistosta hakemistot cache ja localcache, esimerkiksi shellissä komennolla rm -rf /var/www/moodledata/cache – älä kuitenkaan poista koko moodledata hakemistoa, koska siellä ovat kaikki ladatut tiedostot.

Useimmiten virhetilanteissa Google tulee tutuksi. Yksi paikka aloittaa ongelmien penkominen on mennä ensimmäiseksi vilkaisemaan Moodlen foorumilta onko muillakin ollut samanlaisia ongelmia.