# Moodle Installeren

## Niet paniekeren

> In deze gids vind je hoe je Moodle de eerste keer moet installeren. Soms wordt er in detail getreden om de grote variëteit aan kleine verschillen tussen verschillende installaties van webservers. 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, dan kun dit document best grondig herlezen - de meeste problemen komen erin aan bod. Als je probleem dan nog niet opgelost is, dan kun je hulp zoeken op Moodle Help

> Een andere mogelijkheid is het contacteren van een webhostingfirma die je Moodlesite helemaal kan installeren en onderhouden, zodat je dit allemaal kunt negeren en onmiddellijk kunt beginnen met lesgeven!

> Rubrieken:

> 1. Systeemvereisten
> 2. Download
> 3. Sitestructuur
> 4. Laat het installatiescript lopen om config.php te maken
> 5. Algemene instelllingen van de webserver
> 6. Een databank maken
> 7. Een gegevensmap maken
> 8. Ga naar de adminpagina om de configuratie verder af te werken
> 9. Cron installeren
> 10. Een nieuwe cursus maken

### 1. Systeemvereisten

> De ontwikkeling van Moodle is gestart in Linux met Apache, MySQL en PHP (soms ook gekend onder de naam LAMP-platform), maar is ook grondig getest met PostgreSQL en op Windows XP, Mac OS X en Netware 6 besturingssystemen

> De systeemvereisten voor Moodle zijn de volgende:

> 1. Webserver software. Meest gebruikt is Apache, maar Moodle zou ook goed moeten werken op gelijk welke webserver met ondersteuning voor PHP, zoals IIS op Windowsplatforms.
> 2. PHP-scripting taal (version 4.1.0 of hoger). PHP 5 is ondersteund vanaf Moodle 1.4
> 3. een werkende databank server: MySQL of PostgreSQL zijn volledig ondersteund en aangeraden voor het gebruik met Moodle.

> De meeste webhosts ondersteunen dit allemaal standaard. Als je ingetekend hebt bij een van de weinige webhosts die deze mogelijkheden niet ondersteunen, vraag hen dan waarom en overweeg om te verhuizen.

> Als je Moodle op je eigen computer wil laten lopen en dit lijkt je allemaal wat moeilijk, raadpleeg dan onze gids: Installing Apache, MySQL and PHP. Die geeft stap voor stap informatie om dit te installeren op de meest gebruikte platforms.

### 2. 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 gecomprimeerd 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 download 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 der server. Zelfs interfaces van webhosts zoals Cpanel geven je de mogelijkheid bestanden uit te pakken via de "Bestandsbeheer".

### 3. Sitestructuur

> Deze rubriek kun je veilig overslaan, maar hier is een korte samenvatting van de inhoud van de Moodlemap, om je te helpen bij het oriënteren.

> config.php | - | bevat de basisinstellingen. Dit bestand komt niet mee met Moodle - je zult het zelf maken.
> install.php | - | het script dat je zal starten om config.php te maken
> version.php | - | geeft de huidige versie van de Moodleprogrammatuur
> 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/ - teksten in verschillende talen, een map per taal
> - lib/ - bibliotheken met de kern van de Moodle code
> - login/ - code voor aanmelding en accountaanmaak
> - mod/ - alle vakmodules van Moodle
> - pix/ - stanaardafbeeldingen voor de site
> - theme/ - themapakketten/skins om het uiterlijk van de site te wijzigen.
> - user/ - code om gebuikers te tonen en te beheren

### 4. Laat het installatiescript lopen om config.php 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 zouden deze suggesties voldoende moeten zijn, maar als je toch vast zou geraken, dan kun je waarschijnlijk verder in dit document lezen wat er juist problemen geeft.

> ### 4.1 Algemene instellingen van de webserver

> > Zorg er eerst voor dat je webserver ingesteld is om index.php als startpagina te gebruiken (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

> > Vergewis je ervan dat 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. Die zorgt er voor dat aan scriptparameters 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 volgende lijnen in je httpd.conf-bestand te zetten.

> > >     AcceptPathInfo on

> > Ten derde vereist Moodle 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

> > >     <IfDefine APACHE2>
> > >          AcceptPathInfo on
> > >     </IfDefine>

> > >     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 bewerken om het aan jouw noden aan te passen. Het bevat ook nog meer aanwijzingen. In een Unix shell, bijvoorbeeld:

> > >     cp lib/htaccess .htaccess

### 4.2. Een databank maken

> Je moet een lega databank maken (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

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

> Het Cpanel-systeem is een van de populairste van deze controlepanelen. Om een databank in Cpanel 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 gebruik) 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 Cpanelaccount kunnen krijgen. Als je deze informatie in het Moodle-installatiescript invoert moet je de volledige namen gebruiken.

> Als je toegang hebt tot de Unix-prompt, dan kun je hetzelfde doen door volgend commando's in te typen.

> Voorbeeldcommando's in UNIX voor MySQL:

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

> Voorbeeldcode voor PostgreSQL:

>        # su - postgres
>        > psql -c "create user moodleuser createdb;" template1
>        > psql -c "create database moodle;" -U moodleuser template1
>        > psql -c "alter user moodleuser nocreatedb;" template1

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

> Vanaf versie 1.0.8 ondersteunt Moodle tabelprefixen, zodat je veilig een databank kun delen met tabellen van andere applicaties

### 4.3 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 volgende lijn

> >     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 Unixmachines 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 er over met de beheerder van je server als je problemen hebt met dit veilig in te stellen.

### 5. Ga naar de adminpagina 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 moet akkoord 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 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 variablen voor je installatie kunt ingeven, zoals de standaardtaal, SMT-hosts enzovoort. Maak je geen zorgen om alles van 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, 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 heer voor 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 gebeurt is, zul je naar de startpagina van je nieuwe site gebracht worden. Merk de beheerlinks op die links onderaan 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 kunnen 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 he installatie! Er is nog een heel belangrijke instelling te maken (zie de volgende rubriek over cron).

### 6. 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 adminmap 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 Unixtool 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 croninstellingen door vanaf de opdrachtregel gebruik te maken van "crontab -e" en voeg een lijn 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 lijn 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 dit kleine pakketje te gebruiken moodle-cron-for-windows.zip wat het hele ding erg gemakkelijk maakt. Je kunt eventueel ook gebruik maken 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.

### 7. Een nieuwe cursus maken

> Nu Moodle goed 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 door de leraar zelf kan veranderd 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 lerarenaccount wil maken, dan kun je ofwel de leraar vragen om zelf zijn eigen account te maken (zie logpagina) of maak er zelf een voor hen door gebruik te maken van de "Voeg een nieuwe gebruiker toe" op de beheerpagina.

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

> Zie ook de "Help..." voor meer details over het opbouwen van cursus.

Moodle Documentation

Version: $Id$