Installation de Moodle

Pas de panique ! Pas de panique !

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 bibliothèque GD, installée et activé (ON), supportant les formats JPG et PNG ;
    • la bibliothèque zlib installée et activée (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, jetez un oeil à la documentation pour les administrateurs. 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/ : bibliothèques 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 visuels 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
AllowOverride None

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

PHP logo

PHP Version 5.6.40-5+ubuntu14.04.1+deb.sury.org+1

System Linux SrvGestionEcole 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64
Server API FPM/FastCGI
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/php/5.6/fpm
Loaded Configuration File /etc/php/5.6/fpm/php.ini
Scan this dir for additional .ini files /etc/php/5.6/fpm/conf.d
Additional .ini files parsed /etc/php/5.6/fpm/conf.d/10-mysqlnd.ini, /etc/php/5.6/fpm/conf.d/10-opcache.ini, /etc/php/5.6/fpm/conf.d/10-pdo.ini, /etc/php/5.6/fpm/conf.d/15-xml.ini, /etc/php/5.6/fpm/conf.d/20-calendar.ini, /etc/php/5.6/fpm/conf.d/20-ctype.ini, /etc/php/5.6/fpm/conf.d/20-dom.ini, /etc/php/5.6/fpm/conf.d/20-exif.ini, /etc/php/5.6/fpm/conf.d/20-fileinfo.ini, /etc/php/5.6/fpm/conf.d/20-ftp.ini, /etc/php/5.6/fpm/conf.d/20-gd.ini, /etc/php/5.6/fpm/conf.d/20-gettext.ini, /etc/php/5.6/fpm/conf.d/20-iconv.ini, /etc/php/5.6/fpm/conf.d/20-json.ini, /etc/php/5.6/fpm/conf.d/20-mcrypt.ini, /etc/php/5.6/fpm/conf.d/20-mysql.ini, /etc/php/5.6/fpm/conf.d/20-mysqli.ini, /etc/php/5.6/fpm/conf.d/20-pdo_mysql.ini, /etc/php/5.6/fpm/conf.d/20-phar.ini, /etc/php/5.6/fpm/conf.d/20-posix.ini, /etc/php/5.6/fpm/conf.d/20-readline.ini, /etc/php/5.6/fpm/conf.d/20-shmop.ini, /etc/php/5.6/fpm/conf.d/20-simplexml.ini, /etc/php/5.6/fpm/conf.d/20-sockets.ini, /etc/php/5.6/fpm/conf.d/20-sysvmsg.ini, /etc/php/5.6/fpm/conf.d/20-sysvsem.ini, /etc/php/5.6/fpm/conf.d/20-sysvshm.ini, /etc/php/5.6/fpm/conf.d/20-tokenizer.ini, /etc/php/5.6/fpm/conf.d/20-wddx.ini, /etc/php/5.6/fpm/conf.d/20-xmlreader.ini, /etc/php/5.6/fpm/conf.d/20-xmlwriter.ini, /etc/php/5.6/fpm/conf.d/20-xsl.ini
PHP API 20131106
PHP Extension 20131226
Zend Extension 220131226
Zend Extension Build API220131226,NTS
PHP Extension Build API20131226,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support disabled
IPv6 Support enabled
DTrace Support enabled
Registered PHP Streamshttps, ftps, compress.zlib, php, file, glob, data, http, ftp, phar
Registered Stream Socket Transportstcp, udp, unix, udg, ssl, sslv2, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filterszlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, mcrypt.*, mdecrypt.*
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Configuration

calendar

Calendar support enabled

cgi-fcgi

php-fpm active
DirectiveLocal ValueMaster Value
cgi.discard_path00
cgi.fix_pathinfo11
cgi.force_redirect11
cgi.nph00
cgi.redirect_status_envno valueno value
cgi.rfc2616_headers00
fastcgi.error_headerno valueno value
fastcgi.logging11
fpm.configno valueno value

Core

PHP Version 5.6.40-5+ubuntu14.04.1+deb.sury.org+1
DirectiveLocal ValueMaster Value
allow_url_fopenOnOn
allow_url_includeOffOff
always_populate_raw_post_data00
arg_separator.input&&
arg_separator.output&amp;&
asp_tagsOffOff
auto_append_fileno valueno value
auto_globals_jitOnOn
auto_prepend_fileno valueno value
browscapno valueno value
default_charsetISO-8859-1ISO-8859-1
default_mimetypetext/htmltext/html
disable_classesno valueno value
disable_functionspcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
display_errorsOnOff
display_startup_errorsOffOff
doc_rootno valueno value
docref_extno valueno value
docref_rootno valueno value
enable_dlOffOff
enable_post_data_readingOnOn
error_append_stringno valueno value
error_logno valueno value
error_prepend_stringno valueno value
error_reporting022527
exit_on_timeoutOffOff
expose_phpOffOff
extension_dir/usr/lib/php/20131226/usr/lib/php/20131226
file_uploadsOnOn
highlight.comment#FF8000#FF8000
highlight.default#0000BB#0000BB
highlight.html#000000#000000
highlight.keyword#007700#007700
highlight.string#DD0000#DD0000
html_errorsOnOn
ignore_repeated_errorsOffOff
ignore_repeated_sourceOffOff
ignore_user_abortOffOff
implicit_flushOffOff
include_path/var/www/vhosts/martigny.vatel.ch/httpdocs/triadev1/moodle/lib/pear:/var/www/vhosts/martigny.vatel.ch/httpdocs/triadev1/common/pear/:.:.:/usr/share/php.:/usr/share/php
input_encodingno valueno value
internal_encodingno valueno value
log_errorsOnOn
log_errors_max_len10241024
mail.add_x_headerOnOn
mail.force_extra_parametersno valueno value
mail.logno valueno value
max_execution_time9090
max_file_uploads2020
max_input_nesting_level6464
max_input_time180180
max_input_vars3000030000
memory_limit384M384M
open_basedirno valueno value
output_buffering40964096
output_encodingno valueno value
output_handlerno valueno value
post_max_size50M50M
precision1414
realpath_cache_size16K16K
realpath_cache_ttl120120
register_argc_argvOffOff
report_memleaksOnOn
report_zend_debugOnOn
request_orderGPGP
sendmail_fromno valueno value
sendmail_path/usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i 
serialize_precision1717
short_open_tagOnOn
SMTPlocalhostlocalhost
smtp_port2525
sql.safe_modeOffOff
sys_temp_dirno valueno value
track_errorsOffOff
unserialize_callback_funcno valueno value
upload_max_filesize40M40M
upload_tmp_dirno valueno value
user_dirno valueno value
user_ini.cache_ttl300300
user_ini.filename.user.ini.user.ini
variables_orderGPCSGPCS
xmlrpc_error_number00
xmlrpc_errorsOffOff
zend.detect_unicodeOnOn
zend.enable_gcOnOn
zend.multibyteOffOff
zend.script_encodingno valueno value

ctype

ctype functions enabled

date

date/time support enabled
"Olson" Timezone Database Version 0.system
Timezone Database internal
Default timezone Europe/Berlin
DirectiveLocal ValueMaster Value
date.default_latitude31.766731.7667
date.default_longitude35.233335.2333
date.sunrise_zenith90.58333390.583333
date.sunset_zenith90.58333390.583333
date.timezoneno valueno value

dom

DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.9.1
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled

ereg

Regex Library Bundled library enabled

exif

EXIF Support enabled
EXIF Version 1.4 $Id: cad29b729548e4206f0697710cc9e177f26fdff3 $
Supported EXIF Version 0220
Supported filetypes JPEG,TIFF
DirectiveLocal ValueMaster Value
exif.decode_jis_intelJISJIS
exif.decode_jis_motorolaJISJIS
exif.decode_unicode_intelUCS-2LEUCS-2LE
exif.decode_unicode_motorolaUCS-2BEUCS-2BE
exif.encode_jisno valueno value
exif.encode_unicodeISO-8859-15ISO-8859-15

fileinfo

fileinfo support enabled
version 1.0.5
libmagic 517

filter

Input Validation and Filtering enabled
Revision $Id: 5b79667bd9a68977a9b4f7505223a8e216e04908 $
DirectiveLocal ValueMaster Value
filter.defaultunsafe_rawunsafe_raw
filter.default_flagsno valueno value

ftp

FTP support enabled

gd

GD Support enabled
GD headers Version 2.2.5
GD library Version 2.2.5
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.5.2
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 8
PNG Support enabled
libPNG Version 1.2.50
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled
WebP Support enabled
DirectiveLocal ValueMaster Value
gd.jpeg_ignore_warning00

gettext

GetText Support enabled

hash

hash support enabled
Hashing Engines md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5

iconv

iconv support enabled
iconv implementation glibc
iconv library version 2.19
DirectiveLocal ValueMaster Value
iconv.input_encodingno valueno value
iconv.internal_encodingno valueno value
iconv.output_encodingno valueno value

json

json support enabled
json version 1.2.1

libxml

libXML support active
libXML Compiled Version 2.9.1
libXML Loaded Version 20901
libXML streams enabled

mcrypt

mcrypt supportenabled
mcrypt_filter supportenabled
Version 2.5.8
Api No 20021217
Supported ciphers cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes
Supported modes cbc cfb ctr ecb ncfb nofb ofb stream
DirectiveLocal ValueMaster Value
mcrypt.algorithms_dirno valueno value
mcrypt.modes_dirno valueno value

mhash

MHASH support Enabled
MHASH API Version Emulated Support

mysql

MySQL Supportenabled
Active Persistent Links 0
Active Links 1
Client API version mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
DirectiveLocal ValueMaster Value
mysql.allow_local_infileOnOn
mysql.allow_persistentOnOn
mysql.connect_timeout6060
mysql.default_hostno valueno value
mysql.default_passwordno valueno value
mysql.default_portno valueno value
mysql.default_socketno valueno value
mysql.default_userno valueno value
mysql.max_linksUnlimitedUnlimited
mysql.max_persistentUnlimitedUnlimited
mysql.trace_modeOffOff

mysqli

MysqlI Supportenabled
Client API library version mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
DirectiveLocal ValueMaster Value
mysqli.allow_local_infileOnOn
mysqli.allow_persistentOnOn
mysqli.default_hostno valueno value
mysqli.default_port33063306
mysqli.default_pwno valueno value
mysqli.default_socketno valueno value
mysqli.default_userno valueno value
mysqli.max_linksUnlimitedUnlimited
mysqli.max_persistentUnlimitedUnlimited
mysqli.reconnectOffOff
mysqli.rollback_on_cached_plinkOffOff

mysqlnd

mysqlndenabled
Version mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
Compression supported
core SSL supported
extended SSL supported
Command buffer size 4096
Read buffer size 32768
Read timeout 31536000
Collecting statistics Yes
Collecting memory statistics No
Tracing n/a
Loaded plugins mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password
API Extensions mysql,mysqli,pdo_mysql
mysqlnd statistics
bytes_sent 3843
bytes_received 64612
packets_sent 74
packets_received 1685
protocol_overhead_in 6740
protocol_overhead_out 296
bytes_received_ok_packet 0
bytes_received_eof_packet 0
bytes_received_rset_header_packet 207
bytes_received_rset_field_meta_packet 0
bytes_received_rset_row_packet 133
bytes_received_prepare_response_packet 18822
bytes_received_change_user_packet 44855
packets_sent_command 31
packets_received_ok 0
packets_received_eof 0
packets_received_rset_header 23
packets_received_rset_field_meta 0
packets_received_rset_row 23
packets_received_prepare_response 235
packets_received_change_user 1392
result_set_queries 20
non_result_set_queries 3
no_index_used 5
bad_index_used 0
slow_queries 0
buffered_sets 20
unbuffered_sets 0
ps_buffered_sets 0
ps_unbuffered_sets 0
flushed_normal_sets 0
flushed_ps_sets 0
ps_prepared_never_executed 0
ps_prepared_once_executed 0
rows_fetched_from_server_normal 1372
rows_fetched_from_server_ps 0
rows_buffered_from_client_normal 1372
rows_buffered_from_client_ps 0
rows_fetched_from_client_normal_buffered 1372
rows_fetched_from_client_normal_unbuffered 0
rows_fetched_from_client_ps_buffered 0
rows_fetched_from_client_ps_unbuffered 0
rows_fetched_from_client_ps_cursor 0
rows_affected_normal 0
rows_affected_ps 0
rows_skipped_normal 1372
rows_skipped_ps 0
copy_on_write_saved 2830
copy_on_write_performed 1757
command_buffer_too_small 0
connect_success 3
connect_failure 0
connection_reused 0
reconnect 0
pconnect_success 0
active_connections 18446744073709551615
active_persistent_connections 0
explicit_close 2
implicit_close 0
disconnect_close 0
in_middle_of_command_close 0
explicit_free_result 19
implicit_free_result 0
explicit_stmt_close 0
implicit_stmt_close 0
mem_emalloc_count 0
mem_emalloc_amount 0
mem_ecalloc_count 0
mem_ecalloc_amount 0
mem_erealloc_count 0
mem_erealloc_amount 0
mem_efree_count 0
mem_efree_amount 0
mem_malloc_count 0
mem_malloc_amount 0
mem_calloc_count 0
mem_calloc_amount 0
mem_realloc_count 0
mem_realloc_amount 0
mem_free_count 0
mem_free_amount 0
mem_estrndup_count 0
mem_strndup_count 0
mem_estndup_count 0
mem_strdup_count 0
proto_text_fetched_null 0
proto_text_fetched_bit 0
proto_text_fetched_tinyint 144
proto_text_fetched_short 15
proto_text_fetched_int24 6
proto_text_fetched_int 0
proto_text_fetched_bigint 1647
proto_text_fetched_decimal 0
proto_text_fetched_float 0
proto_text_fetched_double 0
proto_text_fetched_date 0
proto_text_fetched_year 0
proto_text_fetched_time 0
proto_text_fetched_datetime 0
proto_text_fetched_timestamp 0
proto_text_fetched_string 1455
proto_text_fetched_blob 0
proto_text_fetched_enum 1312
proto_text_fetched_set 0
proto_text_fetched_geometry 0
proto_text_fetched_other 0
proto_binary_fetched_null 0
proto_binary_fetched_bit 0
proto_binary_fetched_tinyint 0
proto_binary_fetched_short 0
proto_binary_fetched_int24 0
proto_binary_fetched_int 0
proto_binary_fetched_bigint 0
proto_binary_fetched_decimal 0
proto_binary_fetched_float 0
proto_binary_fetched_double 0
proto_binary_fetched_date 0
proto_binary_fetched_year 0
proto_binary_fetched_time 0
proto_binary_fetched_datetime 0
proto_binary_fetched_timestamp 0
proto_binary_fetched_string 0
proto_binary_fetched_json 0
proto_binary_fetched_blob 0
proto_binary_fetched_enum 0
proto_binary_fetched_set 0
proto_binary_fetched_geometry 0
proto_binary_fetched_other 0
init_command_executed_count 0
init_command_failed_count 0
com_quit 2
com_init_db 3
com_query 23
com_field_list 0
com_create_db 0
com_drop_db 0
com_refresh 0
com_shutdown 0
com_statistics 0
com_process_info 0
com_connect 0
com_process_kill 0
com_debug 0
com_ping 0
com_time 0
com_delayed_insert 0
com_change_user 0
com_binlog_dump 0
com_table_dump 0
com_connect_out 0
com_register_slave 0
com_stmt_prepare 0
com_stmt_execute 0
com_stmt_send_long_data 0
com_stmt_close 0
com_stmt_reset 0
com_stmt_set_option 3
com_stmt_fetch 0
com_deamon 0
bytes_received_real_data_normal 34691
bytes_received_real_data_ps 0

openssl

OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.1.1b 26 Feb 2019
OpenSSL Header Version OpenSSL 1.1.1b 26 Feb 2019
Openssl default config /usr/lib/ssl/openssl.cnf
DirectiveLocal ValueMaster Value
openssl.cafileno valueno value
openssl.capathno valueno value

pcre

PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 8.42 2018-03-20
DirectiveLocal ValueMaster Value
pcre.backtrack_limit209715201000000
pcre.recursion_limit100000100000

PDO

PDO supportenabled
PDO drivers mysql

pdo_mysql

PDO Driver for MySQLenabled
Client API version mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
DirectiveLocal ValueMaster Value
pdo_mysql.default_socket/var/run/mysqld/mysqld.sock/var/run/mysqld/mysqld.sock

Phar

Phar: PHP Archive supportenabled
Phar EXT version 2.0.2
Phar API version 1.1.1
SVN revision $Id: 6e5cec2462a6ded53d4379ea9a69487a60d5c43c $
Phar-based phar archives enabled
Tar-based phar archives enabled
ZIP-based phar archives enabled
gzip compression enabled
bzip2 compression disabled (install pecl/bz2)
Native OpenSSL support enabled
Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.
DirectiveLocal ValueMaster Value
phar.cache_listno valueno value
phar.readonlyOnOn
phar.require_hashOnOn

posix

Revision $Id: 5f4acc20904b1406142f2a0ede068db048c77e77 $

readline

Readline Supportenabled
Readline library EditLine wrapper
DirectiveLocal ValueMaster Value
cli.pagerno valueno value
cli.prompt\b \> \b \> 

Reflection

Reflectionenabled
Version $Id: 5f15287237d5f78d75b19c26915aa7bd83dee8b8 $

session

Session Support enabled
Registered save handlers files user
Registered serializer handlers php_serialize php php_binary wddx
DirectiveLocal ValueMaster Value
session.auto_startOffOff
session.cache_expire180180
session.cache_limiternocachenocache
session.cookie_domainno valueno value
session.cookie_httponlyOffOff
session.cookie_lifetime00
session.cookie_path//
session.cookie_secureOffOff
session.entropy_file/dev/urandom/dev/urandom
session.entropy_length3232
session.gc_divisor10001000
session.gc_maxlifetime72001440
session.gc_probability10
session.hash_bits_per_character55
session.hash_function00
session.nameMoodleSessionPHPSESSID
session.referer_checkno valueno value
session.save_handlerfilesfiles
session.save_path/var/www/vhosts/martigny.vatel.ch/httpdocs/triadev1/data/moodledata/sessions/var/lib/php/sessions
session.serialize_handlerphpphp
session.upload_progress.cleanupOnOn
session.upload_progress.enabledOnOn
session.upload_progress.freq1%1%
session.upload_progress.min_freq11
session.upload_progress.namePHP_SESSION_UPLOAD_PROGRESSPHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefixupload_progress_upload_progress_
session.use_cookiesOnOn
session.use_only_cookiesOnOn
session.use_strict_modeOffOff
session.use_trans_sid00

shmop

shmop support enabled

SimpleXML

Simplexml supportenabled
Revision $Id: d7077fc935154236afb4fe70814ba358efdbdca4 $
Schema support enabled

sockets

Sockets Support enabled

SPL

SPL supportenabled
Interfaces Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException

standard

Dynamic Library Support enabled
Path to sendmail /usr/sbin/sendmail -t -i
DirectiveLocal ValueMaster Value
assert.active11
assert.bail00
assert.callbackno valueno value
assert.quiet_eval00
assert.warning11
auto_detect_line_endings00
default_socket_timeout6060
fromno valueno value
url_rewriter.tagsa=href,area=href,frame=src,input=src,form=fakeentrya=href,area=href,frame=src,input=src,form=fakeentry
user_agentno valueno value

sysvmsg

sysvmsg support enabled
Revision $Id: 58590192720bc56939152fde3645d808b348bb9b $

tokenizer

Tokenizer Support enabled

wddx

WDDX Supportenabled
WDDX Session Serializer enabled

xml

XML Support active
XML Namespace Support active
libxml2 Version 2.9.1

xmlreader

XMLReader enabled

xmlwriter

XMLWriter enabled

xsl

XSL enabled
libxslt Version 1.1.28
libxslt compiled against libxml Version 2.9.1
EXSLT enabled
libexslt Version 1.1.28

Zend OPcache

Opcode Caching Up and Running
Optimization Enabled
Startup OK
Shared memory model mmap
Cache hits 107339064
Cache misses 43243390
Used memory 67107312
Free memory 8
Wasted memory 1544
Interned Strings Used memory 4194240
Interned Strings Free memory 64
Cached scripts 482
Cached keys 663
Max keys 3907
OOM restarts 0
Hash keys restarts 0
Manual restarts 0
DirectiveLocal ValueMaster Value
opcache.blacklist_filenameno valueno value
opcache.consistency_checks00
opcache.dups_fixOffOff
opcache.enableOnOn
opcache.enable_cliOffOff
opcache.enable_file_overrideOffOff
opcache.error_logno valueno value
opcache.fast_shutdown00
opcache.file_update_protection22
opcache.force_restart_timeout180180
opcache.inherited_hackOnOn
opcache.interned_strings_buffer44
opcache.load_comments11
opcache.lockfile_path/tmp/tmp
opcache.log_verbosity_level11
opcache.max_accelerated_files20002000
opcache.max_file_size00
opcache.max_wasted_percentage55
opcache.memory_consumption6464
opcache.optimization_level0x7FFFBFFF0x7FFFBFFF
opcache.preferred_memory_modelno valueno value
opcache.protect_memory00
opcache.restrict_apino valueno value
opcache.revalidate_freq22
opcache.revalidate_pathOffOff
opcache.save_comments11
opcache.use_cwdOnOn
opcache.validate_permissionOffOff
opcache.validate_rootOffOff
opcache.validate_timestampsOnOn

zlib

ZLib Supportenabled
Stream Wrapper compress.zlib://
Stream Filter zlib.inflate, zlib.deflate
Compiled Version 1.2.8
Linked Version 1.2.8
DirectiveLocal ValueMaster Value
zlib.output_compressionOffOff
zlib.output_compression_level-1-1
zlib.output_handlerno valueno value

Additional Modules

Module Name
sysvsem
sysvshm

Environment

VariableValue
USER www-data
HOME /var/www

PHP Variables

VariableValue
_REQUEST["file"]install.html
_GET["file"]install.html
_COOKIE["MoodleSessionTest"]Va34keiyie
_SERVER["USER"]www-data
_SERVER["HOME"]/var/www
_SERVER["FCGI_ROLE"]RESPONDER
_SERVER["proxy-nokeepalive"]1
_SERVER["HTTP_ACCEPT"]*/*
_SERVER["HTTP_USER_AGENT"]Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
_SERVER["HTTP_ACCEPT_ENCODING"]gzip, br, zstd, deflate
_SERVER["HTTP_HOST"]martigny.vatel.ch
_SERVER["HTTP_VIA"]1.1 squid-proxy-5b5d847c96-jt9n4 (squid/6.10)
_SERVER["HTTP_X_FORWARDED_FOR"]10.1.150.4
_SERVER["HTTP_CACHE_CONTROL"]max-age=0
_SERVER["HTTP_CONNECTION"]keep-alive
_SERVER["PATH"]/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_SERVER["SERVER_SIGNATURE"]<address>Apache/2.4.10 (Ubuntu) Server at martigny.vatel.ch Port 80</address>
_SERVER["SERVER_SOFTWARE"]Apache/2.4.10 (Ubuntu)
_SERVER["SERVER_NAME"]martigny.vatel.ch
_SERVER["SERVER_ADDR"]94.23.112.215
_SERVER["SERVER_PORT"]80
_SERVER["REMOTE_ADDR"]216.73.216.127
_SERVER["DOCUMENT_ROOT"]/var/www/vhosts/martigny.vatel.ch/httpdocs
_SERVER["REQUEST_SCHEME"]http
_SERVER["CONTEXT_PREFIX"]no value
_SERVER["CONTEXT_DOCUMENT_ROOT"]/var/www/vhosts/martigny.vatel.ch/httpdocs
_SERVER["SERVER_ADMIN"][no address given]
_SERVER["SCRIPT_FILENAME"]/var/www/vhosts/martigny.vatel.ch/httpdocs/triadev1/moodle/help.php
_SERVER["REMOTE_PORT"]16091
_SERVER["GATEWAY_INTERFACE"]CGI/1.1
_SERVER["SERVER_PROTOCOL"]HTTP/1.1
_SERVER["REQUEST_METHOD"]GET
_SERVER["QUERY_STRING"]file=install.html
_SERVER["REQUEST_URI"]/triadev1/moodle/help.php?file=install.html
_SERVER["SCRIPT_NAME"]/triadev1/moodle/help.php
_SERVER["PHP_SELF"]/triadev1/moodle/help.php
_SERVER["REQUEST_TIME_FLOAT"]1751383236.4832
_SERVER["REQUEST_TIME"]1751383236

PHP Credits

PHP Group
Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski
Language Design & Concept
Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, Marcus Boerger
PHP Authors
ContributionAuthors
Zend Scripting Language Engine Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Marcus Boerger, Dmitry Stogov, Xinchen Hui, Nikita Popov
Extension Module API Andi Gutmans, Zeev Suraski, Andrei Zmievski
UNIX Build and Modularization Stig Bakken, Sascha Schumann, Jani Taskinen
Windows Port Shane Caraveo, Zeev Suraski, Wez Furlong, Pierre-Alain Joye, Anatol Belski
Server API (SAPI) Abstraction Layer Andi Gutmans, Shane Caraveo, Zeev Suraski
Streams Abstraction Layer Wez Furlong, Sara Golemon
PHP Data Objects Layer Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
Output Handler Zeev Suraski, Thies C. Arntzen, Marcus Boerger, Michael Wallner
SAPI Modules
ContributionAuthors
AOLserver Sascha Schumann
Apache 1.3 (apache_hooks) Rasmus Lerdorf, Zeev Suraski, Stig Bakken, David Sklar, George Schlossnagle, Lukas Schroeder
Apache 1.3 Rasmus Lerdorf, Zeev Suraski, Stig Bakken, David Sklar
Apache 2.0 Filter Sascha Schumann, Aaron Bannert
Apache 2.0 Handler Ian Holsman, Justin Erenkrantz (based on Apache 2.0 Filter code)
Caudium / Roxen David Hedbor
CGI / FastCGI Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov
CLI Edin Kadribasic, Marcus Boerger, Johannes Schlueter, Moriyoshi Koizumi, Xinchen Hui
Continuity Alex Leigh (based on nsapi code)
Embed Edin Kadribasic
FastCGI Process Manager Andrei Nigmatulin, dreamcat4, Antony Dovgal, Jerome Loyet
ISAPI Andi Gutmans, Zeev Suraski
litespeed George Wang
NSAPI Jayakumar Muthukumarasamy, Uwe Schindler
phpdbg Felipe Pena, Joe Watkins, Bob Weinand
phttpd Thies C. Arntzen
pi3web Holger Zimmermann
Sendmail Milter Harald Radi
thttpd Sascha Schumann
tux Sascha Schumann
WebJames Alex Waugh
Module Authors
ModuleAuthors
BC Math Andi Gutmans
Bzip2 Sterling Hughes
Calendar Shane Caraveo, Colin Viebrock, Hartmut Holzgraefe, Wez Furlong
COM and .Net Wez Furlong
ctype Hartmut Holzgraefe
cURL Sterling Hughes
Date/Time Support Derick Rethans
DB-LIB (MS SQL, Sybase) Wez Furlong, Frank M. Kromann
DBA Sascha Schumann, Marcus Boerger
DOM Christian Stocker, Rob Richards, Marcus Boerger
enchant Pierre-Alain Joye, Ilia Alshanetsky
ereg Rasmus Lerdorf, Jim Winstead, Jaakko Hyvätti
EXIF Rasmus Lerdorf, Marcus Boerger
fileinfo Ilia Alshanetsky, Pierre Alain Joye, Scott MacVicar, Derick Rethans
Firebird driver for PDO Ard Biesheuvel
FTP Stefan Esser, Andrew Skalski
GD imaging Rasmus Lerdorf, Stig Bakken, Jim Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger
GetText Alex Plotnick
GNU GMP support Stanislav Malyshev
Iconv Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi
IMAP Rex Logan, Mark Musone, Brian Wang, Kaj-Michael Lang, Antoni Pamies Olive, Rasmus Lerdorf, Andrew Skalski, Chuck Hagenbuch, Daniel R Kalowsky
Input Filter Rasmus Lerdorf, Derick Rethans, Pierre-Alain Joye, Ilia Alshanetsky
InterBase Jouni Ahto, Andrew Avdeev, Ard Biesheuvel
Internationalization Ed Batutis, Vladimir Iordanov, Dmitry Lakhtyuk, Stanislav Malyshev, Vadim Savchuk, Kirti Velankar
JSON Omar Kilani, Scott MacVicar
LDAP Amitay Isaacs, Eric Warnke, Rasmus Lerdorf, Gerrit Thomson, Stig Venaas
LIBXML Christian Stocker, Rob Richards, Marcus Boerger, Wez Furlong, Shane Caraveo
mcrypt Sascha Schumann, Derick Rethans
MS SQL Frank M. Kromann
Multibyte String Functions Tsukada Takuya, Rui Hirokawa
MySQL driver for PDO George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
MySQL Zeev Suraski, Zak Greant, Georg Richter, Andrey Hristov
MySQLi Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
MySQLnd Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter
OCI8 Stig Bakken, Thies C. Arntzen, Andy Sautins, David Benson, Maxim Maletsky, Harald Radi, Antony Dovgal, Andi Gutmans, Wez Furlong, Christopher Jones, Oracle Corporation
ODBC driver for PDO Wez Furlong
ODBC Stig Bakken, Andreas Karajannis, Frank M. Kromann, Daniel R. Kalowsky
OpenSSL Stig Venaas, Wez Furlong, Sascha Kettler, Scott MacVicar
Oracle (OCI) driver for PDO Wez Furlong
pcntl Jason Greene, Arnaud Le Blanc
Perl Compatible Regexps Andrei Zmievski
PHP Archive Gregory Beaver, Marcus Boerger
PHP Data Objects Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
PHP hash Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner, Scott MacVicar
Posix Kristian Koehntopp
PostgreSQL driver for PDO Edin Kadribasic, Ilia Alshanetsky
PostgreSQL Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne
Pspell Vlad Krupin
Readline Thies C. Arntzen
Recode Kristian Koehntopp
Reflection Marcus Boerger, Timm Friebe, George Schlossnagle, Andrei Zmievski, Johannes Schlueter
Sessions Sascha Schumann, Andrei Zmievski
Shared Memory Operations Slava Poliakov, Ilia Alshanetsky
SimpleXML Sterling Hughes, Marcus Boerger, Rob Richards
SNMP Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne, Boris Lytochkin
SOAP Brad Lafountain, Shane Caraveo, Dmitry Stogov
Sockets Chris Vandomelen, Sterling Hughes, Daniel Beulshausen, Jason Greene
SPL Marcus Boerger, Etienne Kneuss
SQLite 3.x driver for PDO Wez Furlong
SQLite3 Scott MacVicar, Ilia Alshanetsky, Brad Dewar
Sybase-CT Zeev Suraski, Tom May, Timm Friebe
System V Message based IPC Wez Furlong
System V Semaphores Tom May
System V Shared Memory Christian Cartus
tidy John Coggeshall, Ilia Alshanetsky
tokenizer Andrei Zmievski, Johannes Schlueter
WDDX Andrei Zmievski
XML Stig Bakken, Thies C. Arntzen, Sterling Hughes
XMLReader Rob Richards
xmlrpc Dan Libby
XMLWriter Rob Richards, Pierre-Alain Joye
XSL Christian Stocker, Rob Richards
Zip Pierre-Alain Joye, Remi Collet
Zlib Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti, Michael Wallner
PHP Documentation
Authors Mehdi Achour, Friedhelm Betz, Antony Dovgal, Nuno Lopes, Hannes Magnusson, Georg Richter, Damien Seguy, Jakub Vrana, Adam Harvey, Peter Cowburn
Editor Philip Olson
User Note Maintainers Daniel P. Brown, Thiago Henrique Pojda
Other Contributors Previously active authors, editors and other contributors are listed in the manual.
PHP Quality Assurance Team
Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Jani Taskinen, Pierre-Alain Joye, Dmitry Stogov, Felipe Pena, David Soria Parra, Stanislav Malyshev, Julien Pauli, Stephen Zarkos, Anatol Belski, Remi Collet, Ferenc Kovacs
Websites and Infrastructure team
PHP Websites Team Rasmus Lerdorf, Hannes Magnusson, Philip Olson, Lukas Kahwe Smith, Pierre-Alain Joye, Kalle Sommer Nielsen, Peter Cowburn, Adam Harvey, Ferenc Kovacs, Levi Morrison
Event Maintainers Damien Seguy, Daniel P. Brown
Network Infrastructure Daniel P. Brown
Windows Infrastructure Alex Schoenmaker

PHP License

This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.

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 visuels, 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 ralentir 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& », 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.

Pour plus de détails sur la mise en place de cours, référez-vous à la documentation pour les enseignants.

Index général de l'aide
Afficher cette aide dans la langue : English