Installatiegids

Uit MoodleDocs
Ga naar:navigatie, zoeken

In deze gids vind je hoe je - de eerste keer - Moodle moet installeren. Soms wordt er in detail getreden om de grote variëteit aan kleine verschillen tussen verschillende installaties van webservers uit te leggen. Zo lijkt dit document lang en moeilijk. Laat je er niet door afschrikken. Moodle kan geïnstalleerd worden in enkele minuten!

Indien je problemen ondervindt, herlees dan eerst dit document nog eens grondig - de meeste problemen komen erin aan bod. Is je probleem daarmee niet opgelost, vraag dan om hulp op 'Using Moodle'.

Een andere mogelijkheid is de installatie en het onderhoud van Moodle uit te besteden aan een webhostingfirma, zodat je deze problemen kunt vermijden en direct kunt beginnen met lesgeven!


Systeemvereisten

De ontwikkeling van Moodle is gestart op het Linux-platform met Apache, MySQL en PHP (deze combinatie wordt ook wel LAMP genoemd), maar is ook grondig getest met de databank-server PostgreSQL en op de besturingssystemen Windows XP, Mac OS X en Netware 6.

De systeemvereisten voor Moodle zijn:

  1. Webserver-software. Meest gebruikt is Apache, maar Moodle zou goed moeten werken op elke webserver die PHP ondersteunt, zoals bijvoorbeeld IIS op het Windows-platform.
  2. PHP-scripttaal. Vanaf versie 4.1.0 en hoger. PHP 5 wordt ondersteund vanaf Moodle 1.4
  3. Werkende databank-server. MySQL of PostgreSQL worden beide volledig ondersteund en tevens aanbevolen.

De meeste webhosts ondersteunen deze systeemvereisten standaard. Indien jouw provider deze systeemvereisten niet ondersteunt, vraag dan naar de reden en overweeg eventueel om te verhuizen.

Als je Moodle op je eigen computer wil laten lopen, maar dit lijkt je allemaal wat moeilijk, raadpleeg dan onze gids: 'Installing Apache, MySQL and PHP'. Deze geeft stap voor stap uitleg hoe deze software is te installeren op de meest gebruikte platforms.

Download

Er zijn twee manieren om Moodle te verkrijgen: als gecomprimeerd pakket en via CVS. Dit staat in detail uitgelegd op de downloadpagina: http://moodle.org/download/

Na het downloaden en het uitpakken van het gecomprimeerde bestand of na het uitchecken uit CVS, krijg je een map "moodle", die een hele reeks bestanden en mappen bevat.

Je kan de hele map in de documentenmap van je webserver kopiëren; in dat geval zal je site te vinden zijn via http://jouwdomein.com/moodle of je kan heel de inhoud van die map rechtstreeks in de documentenmap van je webserver zetten, zodat je site gewoon http://jouwdomein.com zal zijn.

Wanneer je Moodle downloadt naar je locale computer en dan uploadt naar je website, dan is het gewoonlijk gemakkelijker het pakket als één bestand te uploaden en dan uit te pakken op de server. Zelfs interfaces van webhosts zoals Cpanel geven je de mogelijkheid bestanden uit te pakken via de "Bestandsbeheer".

Site-structuur

Deze rubriek kun je veilig overslaan, maar onderstaand vind je een korte samenvatting van de inhoud van de Moodle-map om je te helpen bij het oriënteren.

  • config.php - bevat de basisinstellingen. Dit bestand komt niet mee met Moodle - je zult het zelf aanmaken
  • install.php - het script dat je zal starten om config.php te maken
  • version.php - geeft de huidige versie van de Moodle-programmatuur
  • index.php - de startpagina van de site
  • admin/ - code om de server te beheren
  • auth/ - modules om gebruikers te authenticeren
  • course/ - code om de vakken te tonen en te beheren
  • doc/ - helpdocumentatie voor Moodle (bijvoorbeeld deze pagina)
  • files/ - code om geüploade pagina's te tonen
  • lang/ - localisaties (vertalingen) van Moodle, een map per taal
  • lib/ - bibliotheken met de kern van de Moodle-code
  • login/ - code voor aanmelding en het aanmaken van accounts
  • mod/ - alle vakmodules van Moodle
  • pix/ - standaardafbeeldingen voor de site
  • theme/ - themapakketten/skins om het uiterlijk van de site te wijzigen
  • user/ - code om gebruikers te tonen en te beheren

Laat het installatiescript lopen om config.php aan te maken

Om het installatiescript (install.php) te starten volstaat het om de hoofd-URL van je Moodlesite te bezoeken met een browser of om http://jouwserver/install.php rechtstreeks te openen.

(Het installatiescript zal een cookie voor de sessie proberen te plaatsen. Als je hiervoor een waarschuwing krijgt in je browser, accepteer dan die cookie!)

Moodle zal ontdekken dat verdere configuratie nodig is en zal je door enkele schermen leiden om een nieuw configuratiebestand te maken: config.php. Aan het einde van dat proces zal Moodle proberen dit bestand op de juiste plaats te bewaren. Indien dat niet lukt krijg je de mogelijkheid het bestand te downloaden. Je kunt het dan zelf uploaden naar de Moodlemap op de server.

Tijdens deze procedure zal het installatiescript je serveromgeving testen en je suggesties geven over hoe je eventuele problemen kunt oplossen. Voor de meest voorkomende problemen zou dit voldoende moeten zijn, maar als je er niet uitkomt, dan kun je waarschijnlijk verder hieronder lezen wat er juist problemen geeft.

Algemene instellingen van de webserver

Stel eerst index.php als startpagina van je webserver in (eventueel aangevuld met index.html, default.htm enz).

In Apache gebeurt dit door een parameter DirectoryIndex te gebruiken in je httpd.conf-bestand. Het mijne ziet er gewoonlijk zo uit:

DirectoryIndex index.php index.html index.htm

Controleer of index.php in het lijstje staat (en voor de efficiëntie liefst ergens bovenaan de lijst).

Verder als je Apache 2 gebruikt, moet je de AcceptPathInfo variable inschakelen. Dat zorgt er voor dat aan het script parameters doorgegeven kunnen worden zoals http://server/file.php/arg1/arg2. Dit is noodzakelijk om relatieve links tussen je bronnen toe te laten, wat dan weer een grote snelheidswinst oplevert voor bezoekers van je Moodlesite. Je kunt dit inschakelen door de volgende regel in je httpd.conf-bestand te zetten:

           AcceptPathInfo on

Check PHP settings

Ten derde vereist Moodle dat een aantal PHP-instellingen geactiveerd zijn vóór het werkt. Op de meeste servers zullen deze al in de standaardinstellingen voorzien zijn, hoewel sommige PHP-servers (en sommige van de recentere PHP-versies) andere instellingen kunnen hebben. Je kunt ze vinden in het PHP-configuratiebestand (meestal php.ini):

           magic_quotes_gpc = 1    (bij voorkeur maar niet noodzakelijk)
           magic_quotes_runtime = 0    (noodzakelijk)
           file_uploads = 1
           session.auto_start = 0
           session.bug_compat_warn = 0

Als je geen toegang hebt tot httpd.conf of tot php.ini op jouw server, of je hebt Moodle geïnstalleerd op een server met andere toepassingen die andere instellingen vereisen, maak je dan geen zorgen. Je kunt al die standaardinstellingen nog overschrijven.

Om dit te doen maak je een bestandje met als naam .htaccess in de hoofdmap van Moodle. Daarin zet je al deze instellingen. Dit werkt enkel op Apache servers en alleen als Overrides toegestaan zijn.

           DirectoryIndex index.php index.html index.htm


                AcceptPathInfo on


           php_flag magic_quotes_gpc 1
           php_flag magic_quotes_runtime 0
           php_flag file_uploads 1
           php_flag session.auto_start 0
           php_flag session.bug_compat_warn 0

Je kunt ook instellingen maken zoals de maximumgrootte voor de geüploade bestanden.

           LimitRequestBody 0
           php_value upload_max_filesize 2M
           php_value post_max_size 2M
                

De eenvoudigste manier is het voorbeeldbestand kopiëren uit lib/htaccess en dat aan jouw eisen aan te passen. Het bevat ook nog meer aanwijzingen. In een Unix shell, bijvoorbeeld:

           cp lib/htaccess .htaccess

Een databank aanmaken

Je moet een lege databank aanmaken (bv "moodle") in je databanksysteem, samen met een speciale gebruiker (bv. "moodleuser") die toegang heeft tot die databank (en alleen tot die databank). Je kunt ook de "root" gebruiker nemen als je wil, maar dit is niet aan te raden voor een productiesysteem: als hackers je wachtwoord kraken, dan is je hele databanksysteem in gevaar, anders slechts één databank.

Waarschuwing: Hou er rekening mee dat, vanaf Moodle versie 1.5.x, Moodle niet overweg kan met MySQL 5.x's strict mode setting (STRICT_TRANS_TABLES and/or STRICT_ALL_TABLES) – zie forum discussie. Dus als je gebruik maakt van MySQL 5.x, pas dan MySQL's configuratiebestand ("my.ini" in Windows en "my.cnf" in Unix/Linux) en zet die optie in commentaar, of pas het aan naar sql-mode="" (enkele quotes). Na aanpassen van deze setting moet MySQL herstart worden.

Als je geen directe toegang hebt tot de server, gebruik dan bijvoorbeeld PHPMyAdmin (of een andere MySQL-client) en geef het commando SET @@global.sql_mode="" (enkele quotes); (let op de puntkomma).

Gebruik van een webhosted server

Als je installatie bij een webhost staat, dan heb je waarschijnlijk via een webinterface toegang tot een controlepaneel om je databank aan te maken en te beheren.

Het cPanel systeem is een van de populairste van deze controlepanelen. Om een databank in Cpanel aan te maken:

  1. klik je op het icoon "MySQL Databases".
  2. Typ "moodle" in het databankveld en klik op "Add Database".
  3. Typ een gebruikersnaam en een wachtwoord (één dat je nergens anders gebruikt) in de juiste velden en klik dan op "Add User".
  4. Gebruik nu de knop "Add User to Database" om deze nieuwe gebruiker "ALLE" rechten te geven op de nieuwe databank.
  5. Merk op dat de gebruikersnaam en de naam van de databank als voorvoegsel de naam van je Cpanel-account kunnen krijgen. Als je deze informatie in het Moodle-installatiescript invoert, moet je de volledige namen gebruiken.

Gebruik de opdrachtregel

Als je toegang hebt tot de Unix-prompt, dan kun je hetzelfde doen door de volgende commando's in te typen. Je doet dit met behulp van het MySQL Client-programma

Hier een aantal voorbeeld MySQL client commando's (Het rode gedeelte is voor Moodle 1.6 en later; laat dat weg voor Moodle 1.5.x of eerder):

  # mysql -u root -p
  > CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
  > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
          TO moodleuser@localhost IDENTIFIED BY 'yourpassword'; 
  > quit 
  # mysqladmin -u root -p reload

Als je MySQL 4.0.2 of later gebruikt, moet ook CREATE TEMPORARY TABLES in het GRANT statement staan:

  > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,
          DROP,INDEX,ALTER ON moodle.* 
          TO moodleuser@localhost IDENTIFIED BY 'yourpassword'; 

Er zijn stap-voor-stap instructies op MySQL installation for Ubuntu(Debian) beschikbaar.

Voorbeeldcode voor PostgreSQL:

  # su - postgres
  > psql -c "create user moodleuser createdb;" template1
  > psql -c "create database moodle with encoding 'unicode';" -U moodleuser template1
  > psql -c "alter user moodleuser nocreatedb;" template1
  > psql -c "alter user moodleuser with encrypted password 'yourpassword';" template1
  > su - root
  # /etc/init.d/postgresql reload

Als het bovenstaande Postgres create database commando hierboven (>psql -c "create database moodle...") een foutmelding geeft, kan je de volgende opdracht proberen:

psql -c "create database moodle with template=template1 encoding = 'unicode' owner =  moodleuser 
location = '/var/mydata';"

Er zijn stap-voor-stap instructies op: Postgresql installation for Ubuntu(Debian) beschikbaar.

(Voor MySQL raad ik ten zeerste phpMyAdmin aan voor het beheer van je databank - je kunt dit dan allemaal doen via een webinterface).

Een gegevensmap maken

Moodle zal wat ruimte op je harde schijf nodig hebben om geüploade bestanden te bewaren, zoals vakbestanden en foto's van de gebruikers.

Maak ergens een map voor dit doel. Voor de veiligheid is het best dat deze map NIET rechtstreeks te bereiken is via het web. De gemakkelijkste manier om dit te doen is door ze gewoon BUITEN de webmap te zetten. Anders kun je de map ook beschermen door een bestandje te maken, dat je .htaccess noemt en in die map plaatst. In dat bestandje zet je de volgende regel:

       deny from all

Om er zeker van te zijn dat Moodle bestanden kan uploaden naar deze map, kijk je best na of de webserver (bijvoorbeeld Apache) het recht heeft om te schrijven in deze map. Voor Unix-machines betekent dit de instellingen voor de eigenaar van de map op "nobody&quaot; of "apache" zetten.

Op veel gedeelde hostservers zul je waarschijnlijk alle bestandstoegang moeten beperken tot jouw groep (om te verhinderen dat andere klanten van je host je bestanden kunnen komen bekijken en wijzigen), maar volledig lees- en schrijfrecht geven aan alle anderen (wat de webserver zal toelaten tot jouw bestanden). Spreek erover met de beheerder van je server als je problemen hebt met dit veilig in te stellen.

Ga naar de admin-pagina om de configuratie verder af te werken

Als het bestand config.php gemaakt is in de vorige stap, dan moet je proberen de startpagina van je site te bereiken. Je wordt dan naar de beheerpagina's gebracht om de rest van de configuratie af te werken.

De eerste keer dat je de beheerpagina bekijkt, krijg je de GPL "shrinkwrap" overeenkomst te zien, waarmee je akkoord moet gaan, voor je kunt verdergaan met de installatie.

Moodle zal nu beginnen met het installeren van je databank en het creëren van tabellen om gegevens in te bewaren. Je zult heel wat SQL-statements zien die gevolgd worden door statusboodschappen (in groen of rood), die er als volgt uit zien:

CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category int(10) unsigned NOT NULL default '0', password varchar(50) NOT NULL default , fullname varchar(254) NOT NULL default , shortname varchar(15) NOT NULL default , summary text NOT NULL, format tinyint(4) NOT NULL default '1', teacher varchar(100) NOT NULL default 'Teacher', startdate int(10) unsigned NOT NULL default '0', enddate int(10) unsigned NOT NULL default '0', timemodified int(10) unsigned NOT NULL default '0', PRIMARY KEY (id)) TYPE=MyISAM

       SUCCESS
   ...en zo verder, gevolgd door: Main databases set up successfully.

Als je dit niet ziet, dan moet er wat fout zijn met de databank of de instellingen die je gedefinieerd hebt voor config.php. Controleer of PHP niet in "Safe Mode" staat (commerciële webhosts schakelen dit soms in). Je kunt je PHP-instellingen controleren door een bestandje te maken dat <?php phpinfo() ?> bevat en dat te bekijken via een browser. Controleer dit en probeer dan nog eens.

Scroll naar onderaan de pagina en klik op de link "Continue".

Je zou nu een formulier moeten zien waar je heel wat variabelen voor je installatie kunt ingeven, zoals de standaardtaal, SMT-hosts, enzovoort. Maak je geen zorgen om alles direct al de eerste keer juist in te stellen - je kunt deze instellingen later nog altijd wijzigen via de beheerinterface. De standaardinstellingen zijn bedoeld om veilig en goed te staan voor de meeste sites. Scroll naar onderaan de pagina en klik op "Bewaar de wijzigingen".

Als (en alleen als) je vastzit op deze pagina, en het is onmogelijk om verder te gaan, dan heeft je server waarschijnlijk het "buggy referrer" probleem. Dit is gemakkelijk te omzeilen door de "secureforms" -instelling uit te schakelen en dan verder te gaan.

Daarna zie je meer pagina's die vele statusboodschappen tonen, terwijl ze de nodige tabellen maken die nodig zijn voor de verschillende Moodlemodules. Zoals hiervoor zouden ze allemaal groen moeten zijn.

Ga verder naar de onderkant van de pagina en klik op de link "Ga verder".

De volgende pagina is een formulier waar je de parameters van je Moodlesite en de startpagina, zoals naam, format, beschrijving, enzovoort kunt ingeven. Vul deze in (je kunt later altijd terugkeren om de gegevens te wijzigen) en klik op "Bewaar de wijzigingen".

Tenslotte zal je gevraagd worden om een beheerder te maken om later de administratiepagina's te kunnen bedienen. Vul het formulier in met je naam, e-mailadres, enzovoort en klik dan op "Bewaar wijzigingen". Niet alle velden moeten ingevuld worden, maar als je er enkele belangrijke mist, zullen die je opnieuw gevraagd worden.

Zorg ervoor dat je de gebruikersnaam en wachtwoord van de beheeraccount goed bewaart, omdat die nog nodig is om later de beheerpagina's te kunnen bereiken.

(Als om één of andere reden de installatie onderbroken is of er is een systeemfout waardoor je niet meer kunt aanmelden met je beheeraccount, dan kun je je gewoonlijk nog wel aanmelden met de standaardgebruikersnaam "admin", met wachtwoord "admin".)

Eens dit met succes gebeurd is, zul je naar de startpagina van je nieuwe site gebracht worden. Merk de beheerlinks op die linksonderaan je pagina verschijnen (deze items verschijnen ook op een apparte beheerpagina) - deze items kun jij alleen zien, omdat je aangemeld bent met de beheeraccount. Alle verdere beheertaken van Moodle kunnen nu via dat menu gebeuren, zoals:

       * het maken en verwijderen van vakken
       * het maken en verwijderen van gebruikersaccounts
       * het beheer van lerarenaccounts
       * het wijzigen van instellingen die voor de hele site gelden, zoals thema, enzovoort

Maar je bent nog niet klaar met de installatie! Er is nog een heel belangrijke instelling te maken (zie de volgende rubriek over cron).

Cron installeren -- BELANGRIJK!

Sommige Moodlemodules hebben constante controle nodig om hun activiteiten te kunnen doen. Zo moet Moodle bijvoorbeeld de discussieforums regelmatig controleren om kopieën van de berichten te sturen naar gebruikers die daarvoor ingeschreven hebben.

Het script dat al deze taken doet, staat in de admin-map en heet cron.php. Alleen kan dit script niet uit zichzelf lopen, dus moet je een mechanisme installeren dat dit script om de 5 á 10 minuten start. Dit maakt een "hartslag", zodat het script taken kan uitvoeren na periodes die vastgelegd zijn in elke module.

Merk op dat de machine die cron.php laat lopen niet dezelfde machine moet zijn als degene waar Moodle op loopt. Als je installatie bijvoorbeeld bij een beperkte webhost staat die geen cron aanbiedt, dan kun je bijvoorbeeld opteren om cron te laten lopen op een andere server, of op je eigen computer. Het enige belangrijke is, dat het bestand cron.php regelmatig opgevraagd wordt.

Het script veroorzaakt geen grote belasting, dus om de vijf minuten is redelijk. Maar als je je daarover zorgen maakt, dan kun je de periode verlengen tot 15 of zelfs 30 minuten. Je kunt de periode best niet te lang nemen, omdat het vertragen van de e-mailverzendingen de activiteit in je cursus kan vertragen.

Test het script eerst door het te laten lopen vanuit je browser.

       http://example.com/moodle/admin/cron.php

Nu moet je iets installeren, zodat het script automatisch en regelmatig opgevraagd wordt.

Het script starten vanaf de opdrachtregel

Je kunt vanuit de opdrachtregel de pagina opvragen, net zoals bij bovenstaand voorbeeld. Je kunt bijvoorbeeld een Unix-tool gebruiken zoals 'wget':

       wget -q -O /dev/null http://example.com/moodle/admin/cron.php

Merk op dat in dit voorbeeld de output weggegooid wordt (naar /dev/null).

Hetzelfde kan met lynx:

       lynx -dump http://example.com/moodle/admin/cron.php > /dev/null

Je zou ook een alleenstaande versie van PHP, gecompileerd om van de opdrachtregel te lopen, kunnen gebruiken. Het voordeel hiervan is, dat de logs van je webserver niet vol lopen met de continue vraag naar cron.php. Het nadeel is, dat je toegang moet hebben tot een opdrachtregel-versie van PHP.

       /opt/bin/php /web/moodle/admin/cron.php
       (Windows) C:apachephpphp.exe C:apachehtdocsmoodleadmincron.php


Het script automatisch laten lopen om de 5 minuten

Op Unix systemen: gebruik cron. Bewerk je cron-instellingen door vanaf de opdrachtregel gebruik te maken van "crontab -e" en voeg een regel toe zoals:

       */5 * * * * wget -q -O /dev/null http://example.com/moodle/admin/cron.php

Gewoonlijk zal de "crontab" opdracht je in de 'vi' editor brengen. Je gaat in "insert mode" door op "i"te drukken, dan kun je bovenstaande regel inbrengen, dan ga je uit insert mode door op ESC te drukken. Je bewaart en verlaat het programma door "wq" te typen of door ":q!" te typen (zonder de aanhalingstekens).

Op Windowssystemen: de gemakkelijkste manier is door het kleine pakketje moodle-cron-for-windows.zip te gebruiken, wat het hele ding erg gemakkelijk maakt. Je kunt eventueel ook gebruikmaken van de ingebouwde Windowsfunctie "Scheduled Tasks".

Bij webhosts: je webgebaseerde controlepaneel kan een pagina hebben, die bedoeld is om cron op te zetten. Vraag je beheerder naar de details over hoe dit werkt.

Bij grote omgevingen: CronLocking

Een nieuwe cursus aanmaken

Nu Moodle lekker loopt, kun je een cursus aanmaken.

Kies "Voeg een nieuwe cursus toe" vanuit de beheerpagina (of vanuit de beheerlinks op de startpagina).

Vul het formulier in, met speciale aandacht voor de vakformat. Je moet je geen zorgen maken over de details, omdat alles later nog door de leraar zelf veranderd kan worden.

Druk op "Bewaar de wijzigingen", en je wordt naar een nieuw formulier gebracht waar je leraren aan de cursus kunt toewijzen. Je kunt alleen een bestaande gebruikersaccount aanwijzen vanuit dit formulier. Als je een nieuwe leraren-account wilt maken, vraag dan de leraar zelf zo'n account aan te willen maken (zie logpagina), of maak er zelf een voor hem door gebruik te maken van de "Voeg een nieuwe gebruiker toe" op de beheerpagina.

Als dit is gedaan, dan is de cursus klaar om aangepast te worden en is het toegankelijk vanaf de "vakken"-link op de startpagina.