# Installation de Moodle

> Ce document explique comment installer un nouveau site Moodle. Certaines étapes sont décrites en détails, afin de couvrir la grande variété des petites particularités des différents serveurs web. C'est pourquoi ce document vous semblera peut-être long et compliqué. Ne vous laissez pas décourager pour autant : la mise en place de Moodle est d'habitude une affaire de minutes !

> Prenez le temps d'étudier attentivement ces instructions. Cela vous fera gagner du temps tôt ou tard.

> Voici les différentes sections de ce document :

> 1. Logiciels et réglages nécessaires
> 2. Télécharger le logiciel
> 3. Structure du dossier d'installation
> 4. Créer un dossier de données
> 5. Créer une base de données
> 6. Vérifier les réglages de votre serveur web
> 7. Modifier config.php
> 8. Visiter la page d'administration
> 9. Mettre en place un cron
> 10. Créer un nouveau cours

### 1. Logiciels et réglages nécessaires

> Moodle est principalement développé sur Linux avec Apache, MySQL et PHP (environnement appelé parfois plateforme LAMP), mais est aussi testé régulièrement avec PostgreSQL et sur les systèmes d'exploitation Windows XP, Mac OS X et Netware 6.

> Les logiciels et réglages nécessaires pour Moodle sont les suivants :

> 1. Logiciel serveur web. La plupart des gens utilisent Apache, mais Moodle devrait fonctionner tout aussi bien avec n'importe quel serveur web compatible avec PHP, comme IIS sur les plateformes Windows.
> 2. Le langage PHP (version 4.1.0 ou ultérieure), avec les réglages suivants :
>    - la librairie GD, installée et activé (ON), supportant les formats JPG et PNG ;
>    - la librairie zlib installée et activé (ON), si vous voulez faire des backups et les restaurer sous Windows ;
>    - le support des sessions activé (ON) ;
>    - le dépôt (upload) de fichiers activé (ON) ;
>    - le mode « Safe Mode » doit être désactivé (OFF) (voir les forums sur moodle.org pour les problèmes causés par le mode « Safe Mode ».
> 3. Un serveur de base de données : MySQL ou PostgreSQL sont complètement supportés et recommandés pour être utilisés avec Moodle 1.1. D'autres bases de données seront pleinement supportées dans la prochaine version.

> La plupart des hébergeurs web proposent tout cela par défaut. Si vous vous êtes engagé auprès d'un hébergeur web qui n'offre pas ces logiciels, demandez-lui pourquoi, et envisagez de changer de fournisseur.

> Si vous voulez faire fonctionner Moodle sur votre propre ordinateur et que cela vous fait un peu peur, lisez notre guide Installation d'Apache, MySQL et PHP. Ce document offre quelques pas-à-pas pour l'installation de ces logiciels sur la plupart des plateformes.

### 2. Télécharger le logiciel

> Il y a deux façons d'obtenir Moodle : par téléchargement d'un fichier compressé ou à l'aide du CVS. Toutes deux sont expliquées en détail sur la page de téléchargement http://moodle.org/download/.

> Après avoir téléchargé et décompressé l'archive ou obtenu les fichiers par CVS, vous aurez sous les yeux un dossier nommé « moodle », contenant un certain nombre de dossiers et de fichiers.

> Vous pouvez placer ce dossier intégralement dans le dossier documents de votre serveur web. Dans ce cas, le site Moodle sera accessible à l'adresse http://votreserveur.com/moodle/. Vous pouvez aussi copier le contenu de ce dossier dans le dossier documents de votre serveur. Dans ce cas, le site Moodle sera accessible simplement à l'adresse http://votreserveur.com/.

### 3. Structure du dossier d'installation

> Voici une bref aperçu du contenu du dossier Moodle, afin de vous permettre de ne pas vous perdre :

> > config.php : l'UNIQUE fichier à modifier pour faire fonctionner votre site
> > version.php : indique la version actuelle du programme Moodle
> > index.php : la page d'accueil du site

> > - admin/ : programmes pour l'administration du serveur
> > - auth/ : modules pour l'authentification des utilisateurs
> > - course/ : programmes pour l'affichage et la gestion des cours
> > - doc/ : documentation et fichiers d'aide de Moodle (p. ex. cette page)
> > - files/ : programmes pour l'affichage et la gestion des fichiers déposés
> > - lang/ : textes dans les différentes langues, un dossier par langue
> > - lib/ : librairies du cœur du programme Moodle
> > - login/ : programmes de gestion des connexions et de la création des comptes
> > - mod/ : tous les modules d'activités de Moodle
> > - pix/ : les images et graphiques génériques du site
> > - theme/ : différents thèmes pour changer l'aspect de votre site
> > - user/ : programmes pour afficher et gérer les utilisateurs

### 4. Créer un dossier de données

> Moodle aura également besoin d'espace sur le disque dur du serveur pour conserver les fichiers déposés par les utilisateurs, comme les documents de cours ou les photos des utilisateurs.

> Créez quelque part à cet effet un dossier. Par sécurité, ce dossier NE DOIT PAS être accessible directement depuis le web. La manière la plus simple d'obtenir cela est de le créer EN DEHORS du dossier web. Sinon, vous pouvez protéger ce dossier en y plaçant un fichier nommé « .htaccess », contenant cette ligne :

> >     deny from all

> Faites en sorte que le logiciel serveur (p. ex. Apache) ait les privilèges pour écrire dans ce dossier, afin que Moodle puisse enregistrer les fichiers déposés. Sur les ordinateurs UNIX, cela signifie que le possesseur du dossier en question soit quelque chose comme « nobody », « www » ou « apache ».

> Sur la plupart des serveurs web, vous devrez probablement restreindre à votre « groupe » tous les accès à vos fichiers (afin d'éviter que d'autres utilisateurs du même fournisseur puissent voir ou modifier vos fichiers), mais accorder les droits de lecture et d'écriture à tous les autres utilisateurs (ce qui permettra au serveur web d'accéder à vos fichiers). Si vous avez des difficultés à gérer proprement cela, parlez-en à l'administrateur de votre serveur web.

### 5. Créer une base de données

> Il est nécessaire de créer une base de données vide (nommée par exemple « moodle ») dans votre gestionnaire de base de données, ainsi qu'un utilisateur spécial (nommé par exemple « moodleuser ») ayant accès à cette base de données (et seulement à celle-ci). Il est possible d'utiliser l'utilisateur « root », mais cela n'est pas recommandé sur un système en production : si un pirate découvre le mot de passe, tout votre système de base de données serait alors compromis, plutôt qu'une seule base de données.

> Exemple de commandes sur MySQL :

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

> Exemple de commandes sur 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

> (Pour MySQL, vous pouvez utiliser phpMyAdmin pour gérer vos bases de données. Tout peut être fait via une interface web).

> Moodle gère les préfixes de tables à partir de la version 1.0.8. Il peut donc sans problème partager une base de données comprenant des tables d'autres applications.

### 6. Vérifier les réglages de votre serveur web

> Assurez-vous en premier lieu que votre serveur web permette d'utiliser « index.php » comme page par défaut (de même par exemple que index.html, index.htm, default.htm, etc.).

> Dans Apache, cela peut être obtenu avec une directive « DirectoryIndex » dans votre fichier « httpd.conf ». Chez moi, cela se présente ainsi :

> >     DirectoryIndex index.php index.html index.htm

> Contrôlez simplement que index.php soit dans la liste (et de préférence au début de la liste, pour des raisons de performance).

> Deuxièmement, si vous utilisez Apache 2, vous devrez activer la variable AcceptPathInfo, qui permet de passer des arguments à des scripts, comme http://serveur/file.php/arg1/arg2. Cela est essentiel, pour permettre des liens relatifs entre vos ressources, et également pour offrir un gain de performance aux utilisateurs de votre site Moodle. Vous pouvez activer cette variable en ajoutant la ligne ci-dessous à votre fichier « httpd.conf ».

> >     AcceptPathInfo on

> Troisièmement, pour fonctionner, Moodle nécessite un certain nombre de réglages PHP. Sur la plupart des serveurs, ces réglages sont actifs par défaut. Cependant, certains serveurs PHP (et avec certaines des versions les plus récentes de PHP) peuvent avoir des réglages différents. Ces réglages sont définis dans le fichier de configuration de PHP (dont le nom est habituellement php.ini) :

> >     magic_quotes_gpc = 1        (préférable, mais pas nécessaire)
> >     magic_quotes_runtime = 0    (nécessaire)
> >     file_uploads = 1
> >     session.auto_start = 0
> >     session.bug_compat_warn = 0

> Si vous n'avez accès ni au fichier httpd.conf, ni au fichier php.ini de votre serveur, ou si Moodle est installé sur un serveur avec des applications nécessitant des réglages différents, vous pouvez cependant CONTOURNER tous ces réglages par défaut.

> Pour le faire, il vous faudra créer dans le dossier de Moodle un fichier nommé .htaccess, contenant les définitions adéquates pour ces réglages. Cela ne fonctionne que pour les serveurs Apaches et seulement si le privilège Overrides est accordé. Voici un exemple du contenu d'un fichier .htaccess :

> >     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

> Dans ce fichier, on peut aussi définir la taille maximale des fichiers déposés :

> >     LimitRequestBody 0
> >     php_value upload_max_filesize 2M
> >     php_value post_max_size 2M

> Le plus simple à faire est de copier le fichier fourni lib/htaccess, de le modifier suivant vos besoins. Ce fichier contient de plus amples instructions. Pour cela il vous suffit de taper, dans Unix, la commande :

> >     cp lib/htaccess .htaccess

### 7. Modifier config.php

> Vous pouvez maintenant éditer le fichier de configuration config.php à l'aide d'un éditeur de texte. Ce fichier est utilisé par tous les autres fichiers de Moodle.

> Pour commencer, faites une copie du fichier config-dist.php et donnez-lui le nom « config.php ». Cette étape est nécessaire pour éviter que votre config.php ne soit effacé si plus tard vous mettez à jour Moodle.

> Modifiez votre config.php pour indiquer les détails de la base de données que vous venez de définir (en incluant un préfixe de table, ce qui est OBLIGATOIRE pour PostgreSQL), ainsi que l'adresse du site, le chemin du dossier et celui du dossier des données. Le fichier de configuration contient de plus amples informations, ainsi que des exemples.

> Une fois cette étape effectuée, le reste de l'installation a lieu via une interface web. Pour la suite et la fin de cette installation, nous supposerons que votre site est à l'adresse : http://exemple.com/moodle.

### 8. Visiter la page d'administration

> La page d'aministration devrait être maintenant active à l'adresse http://exemple.com/moodle/admin. Si vous essayez d'accéder à la page d'accueil de votre site, vous y arriverez directement malgré tout. La première fois que vous accéderez à la page d'administration, un condensé de la licence GPL vous sera présenté. Vous devez l'accepter avant de continuer la mise en service de votre installation.

> (Moodle va aussi essayer de placer des cookies dans votre navigateur. Si celui-ci vous permet d'accepter ou non les cookies, vous devez accepter les cookies de Moodle, ou alors Moodle ne fonctionnera pas.)

> Moodle va maintenant mettre en place votre base de données et créer les tables qui contiendront les données. Les tables de la base de données principale sont d'abord créées. Un certain nombre de commandes SQL seront affichées, suivies de messages (en rouge ou en vert) de ce type :

> > 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

> > ... et ainsi de suite, suivi de : Main databases set up successfully.

> Si ces messages n'apparaissent pas, c'est qu'un problème est survenu avec la base de données, ou qu'un paramètre de votre configuration est incorrect dans votre config.php. Vérifiez que PHP ne fonctionne pas en mode « Safe Mode » (certains hébergeurs web commerciaux ont le mode « Safe Mode » activé). Vous pouvez vérifier la configuration des variables PHP en créant un fichier PHP contenant <? phpinfo() ?> et en le chargeant dans votre navigateur. Vérifiez tout et rechargez ensuite la page d'administration.

> Descendez tout en bas de la page et cliquez sur le lien « Continuer ».

> Une page semblable va s'afficher, qui met en place toutes les tables requises par chaque module de Moodle. Comme avant, tout doit être en vert.

> Descendez tout en bas de la page et cliquez sur le lien « Continuer ».

> Un formulaire devrait s'afficher maintenant, dans lequel vous pouvez définir plus d'options de configuration pour votre installation, telles que la langue par défaut, les hôtes SMTP, etc. Si vous n'avez pas encore déterminé tous les réglages, ce n'est pas grave : vous pourrez en tout temps modifier ces réglages à l'aide de l'interface d'administration de Moodle. Descendez tout en bas de la page et cliquez sur le bouton « Enregistrer ».

> Si vous êtes coincé sur cette page et ne pouvez continuer (et seulement dans ce cas), c'est probablement que votre serveur souffre de ce que j'appelle le problème du « buggy referrer ». Il est facile d'y remédier : désactivez le réglage « secureforms », puis essayez de continuer.

> La page suivante est un formulaire où vous pouvez définir l'aspect de votre site Moodle et de sa page d'accueil, comme le nom, le format, le texte de description, etc. Remplissez-le (vous pourrez en tout temps modifier ces réglages) et cliquez sur le bouton « Enregistrer ».

> Finalement, l'on vous demandera de créer un utilisateur administrateur, qui aura accès aux pages d'administration. Remplissez les différents champs avec votre nom, votre adresse de courriel, etc., puis cliquez sur le bouton « Enregistrer ». Tous les champs ne sont pas obligatoires. Si toutefois vous oubliez de renseigner un champ important, on vous demandera de le remplir.

> > > > > > Assurez-vous de retenir le nom d'utilisateur et le mot de passe que vous choisissez pour le compte administrateur. Ces données seront nécessaires pour accéder à la page d'administration.

> (Si pour une raison ou pour une autre l'installation est interrompue, ou si une erreur système vous empêche de vous annoncer dans Moodle avec votre compte administrateur, il est en général possible de s'annoncer avec le nom d'utilisateur par défaut « admin », avec le mot de passe « admin ».)

> Dès que vous avez créé votre compte administrateur, la page d'accueil de votre site s'affichera. Remarquez les liens vers les options d'administration en bas à gauche de la page (elles apparaissent aussi sur la page d'administration) : ces options ne sont visibles que parce que vous êtes annoncé en tant qu'administrateur. L'administration de votre site Moodle peut être intégralement effectuée à l'aide de ce menu. Par exemple :

> - la création et la suppression de cours
> - la création et la suppression de comptes utilisateurs
> - l'administration des comptes d'enseignants
> - la modification de réglages globaux, comme les thèmes, etc.

### 9. Mettre en place un cron

> Certains des modules de Moodle nécessitent de vérifier à intervalles réguliers certains paramètres, afin d'exécuter des opérations. Par exemple, Moodle doit vérifier si des messages ont été postés dans les forums pour envoyer des copies de ces messages aux abonnés.

> Le script qui effectue ces contrôles est situé dans le dossier admin. Il porte le nom cron.php. Ce script ne peut pas se lancer tout seul. Vous devez donc mettre en place un mécanisme permettant de le lancer régulièrement (par exemple toutes les 5 ou 10 minutes). On donne ainsi à Moodle des « battements de cœur », et le script peut effectuer les opérations définies par chaque module.

> Il est à remarquer que l'ordinateur effectuant le cron n'est pas obligatoirement l'ordinateur sur lequel Moodle est installé. Par exemple, si vous disposez d'un serveur web qui n'offre pas de tel mécanisme, vous pourrez lancer le cron sur un autre serveur, ou même sur l'ordinateur de la maison. La seule chose qui importe est de charger régulièrement le fichier cron.php.

> L'appel de ce fichier ne surcharge pas le serveur. Une fréquence d'appel de 5 minutes est donc raisonnable, mais peut fort bien être portée à 15 ou 30 minutes. Il n'est pas recommandé de fixer une trop longue période, car cela générera des délais dans l'envoi des courriels, ce qui peut rallentir l'activité des cours.

> Avant tout, vérifiez que le script fonctionne en l'appelant directement depuis votre navigateur :

> >     http://exemple.com/moodle/admin/cron.php

> Vous pouvez alors mettre en place un mécanisme qui appellera le script à intervalles réguliers.

> #### Lancer le script en ligne de commande

> Il est possible de lancer le script en ligne de commande, avec le même résultat que ci-dessus. On peut par exemple utiliser la commande Unix « wget » :

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

> Dans cet exemple, le résultat de la commande est détruit (envoyé vers /dev/null).

> Même chose avec lynx :

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

> On peut également utiliser une version de PHP compilée pour utilisation en ligne de commande. L'avantage est qu'ainsi l'on n'encombre pas les historiques du serveur web avec les requêtes de cron.php. Le désavantage est qu'il faut disposer d'une version spéciale de PHP.

> >     /opt/bin/php /web/moodle/admin/cron.php

> >     (Windows) C:\apache\php\php.exe C:\apache\htdocs\moodle\admin\cron.php

> #### Lancer automatiquement le script toutes les 5 minutes

> Sur Unix : utilisez cron. En ligne de commande, éditez les réglages de cron avec « crontab -e » et ajouter une ligne de la forme :

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

> Habituellement, la commande « crontab » lance l'éditeur « vi ». On passe en mode insertion en tapant « i », puis on tape une ligne comme ci-dessus. On sort ensuite du mode insertion en tapant la touche <ESC>. Il ne reste qu'à enregistrer et quitter en tapant « :wq&nbsp», ou à quitter sans enregistrer avec « :q! » (tout cela sans guillemets).

> Sous Windows : la façon la plus simple est d'utiliser le petit programme moodle-cron-for-windows.zip qui rend le processus très simple. vous pouvez aussi essayer d'utiliser l'utilitaire Windows « Scheduled Tasks ».

> Chez un hébergeur web : votre interface web de réglages possède peut-être une page vous permettant de mettre en place des crons. Demandez à votre administrateur des détails concernant leur utilisation.

### 10. Créer un nouveau cours

> Maintenant Moodle fonctionne correctement, et vous pouvez créer un cours.

> Sélectionnez « Ajouter un cours » dans les pages d'administration.

> Remplissez le formulaire, en prêtant attention en particulier au format du cours. Il n'est pas nécessaire de se préoccuper tout de suite de tous les détails. Tous les réglages peuvent en effet être modifiés en tout temps par l'enseignant.

> Cliquez sur le bouton « Enregistrer », et un autre formulaire s'affichera, où vous pourrez définir le ou les enseignants de ce cours. Ce formulaire ne permet d'ajouter comme enseignants que des utilisateurs déjà définis. Si vous voulez créez un ou plusieurs nouveaux comptes, demandez aux personnes concernées de s'en créer (voir la page de connexion), ou créez vous-mêmes des comptes, en cliquant sur « Ajouter un utilisateur » dans les pages d'administration.

> Vous pouvez ensuite modifier le cours selon vos désirs. Il sera accessible parmi les « Cours disponibles » de la page d'accueil.

> Référez-vous au « Manuel de l'enseignant » pour plus de détails sur la mise en place de cours.

Documentation Moodle

Version: $Id$