Merci d'avoir téléchargé Chamilo
Ce guide explique comment installer Chamilo LMS. Nous recommandons activement la lecture complète de ce guide avant de commencer l'installation.
English: Get back to the English version of the installation guide.
Spanish: También puede leer esta guía de instalación en español.
Italiano: puoi leggere questa guida anche in italiano.
<Directory /> AllowOverride All Order allow,deny allow from all </Directory> <Directory /var/www/chamilo/> AllowOverride All Order allow,deny allow from all </Directory>et pour Apache >=2.4:
<Directory /> AllowOverride All Require all granted </Directory> <Directory /var/www/chamilo/> AllowOverride All Require all granted </Directory>
Avant d'installer Chamilo LMS, vous devez comprendre que du fait que Chamilo est un logiciel libre,
de nombreux prestataires de service ont été en mesure de développer des extensions pour Chamilo,
qui ont rendu son installation possible par différents biais :
Sous les systèmes d'exploitation Linux, Mac OS X et BSD, vous pouvez utiliser la commande chmod 0775 pour modifier les permissions, bien que nous recommandions, pour des raisons de sécurité, de cherchez l'assistance d'un administrateur système expérimenté pour le faire. Sous Windows, vous pourriez avoir besoin de vérifier les propriétés de ces répertoires (en cliquant dessus avec le bouton droit de la souris).
Important : Vous aurez besoin de définir votre date.timezone en fonction de votre fuseau horaire. Par exemple si votre serveur se trouve dans la zone America/New_York, indiquez cette valeur pour le paramètre date.timezone du fichier php.ini :
Note: PHP 5.3.9 introduit un nouveau paramètre appelé "max_input_vars", qui limite le nombre d'éléments que vous pouvez envoyer au travers d'un formulaire déterminé. Si vous devez gérer de grandes quantités d'utilisateurs ou de longs parcours d'apprentissage (de nombreux éléments), assurez-vous de configurer ce paramètre plus haut que se valeur par défault de 1000.
Utilisateurs de BSD: les librairies suivantes doivent être incluses durant l'installation de PHP:
Nous recommandons aussi les extensions suivantes:
exit;en ligne 15, puis de le charger dans votre navigateur comme https://votresite.com/main/inc/fix_quiz_id_to_iid.php. Ce script réglera un problème d'incohérence des identifiants internes des exercices, questions et réponses qui existait avant l'année 2016 (avant la version 1.11.0). Si votre système a été installé pour la première fois avec une version 1.11.0 ou supérieure, vous n'avez rien à faire.
ATTENTION:
Ne supprimez pas le précédent dossier d'installation de Chamilo avant d'avoir installé le nouveau.
Quand la mise à jour sera terminée, les dossiers obsolètes devraient être automatiquement pris en charge.
If you have problems, go to the Chamilo website and ask a question on the support forum. Please read the previous messages first to see if there is already an answer to your question.
Pour accéder à la section d'administration, ouvrez un navigateur, chargez l'adresse de votre Chamilo et connectez-vous avec l'utilisateur administrateur. Vous verrez alors un onglet "Administration" dans le menu principal. Vous pouvez y gérer les utilisateurs, les cours, les sessions et l'apparence de votre site
This part is optional, only organisations with an LDAP server will need to read this.
An LDAP module is already provided in Chamilo, but it has to be configured to make it work.
Linux servers: It's possible that you have to recompile php with ldap support. Newer distributions also allow downloading rpms for additional packages.
Note: Vérifiez la configuration LDAP dans Chamilo pour voir le détail
In [Chamilo folder]/app/config/configuration.php, around line 93, you'll find settings like the following:
// -> Uncomment the two lines below to activate LDAP AND edit main/inc/conf/auth.conf.php for configuration
// $extAuthSource["extldap"]["login"] = $_configuration['root_sys'].$_configuration['code_append']."auth/external_login/login.ldap.php";
// $extAuthSource["extldap"]["newUser"] = $_configuration['root_sys'].$_configuration['code_append']."auth/external_login/newUser.ldap.php";
remove the // from the last two lines to activate LDAP.
Ask the LDAP server admin for the settings:
By default, Chamilo will check if the "employeenumber" field has a value. If it has, then Chamilo will
consider this user as being a teacher.
If you want to change this behaviour, you can edit main/auth/ldap/authldap.php, function ldap_put_user_info_locally(),
and change the if (empty($info_array[$tutor_field])) condition to whatever suits you.
You can also remove this check by removing the condition and leaving only the $status = STUDENT; line.
Some LDAP servers do not support anonymous use of the directory services.
In this case, you should fill in the appropriate fields in the
administration panel (e.g. "manager" and "mypassword") and Chamilo will
try to authenticate using these, or fall back to anonymous mode before
giving up.
There is a new set of scripts now that allow you to insert users
from LDAP directly into a Chamilo session. This, however, relies on a
set of static choices in the LDAP contact attributes.
The fields used intensively by the Chamlio module are:
En installant ce plugin, vous intégrez Wiris MathType.
Cette activation ne sera pas complète à moins que vous n'ayez d'abord téléchargé le plugin PHP pour CKeditor WIRIS et l'ayez décompressé dans main/inc/lib/javascript/ckeditor/plugins/ckeditor_wiris.
Cette étape est nécessaire parce que WIRIS est un logiciel propriétaire et ses services sont de type commerciaux. Pour faire des modifications au plugin , éditez le fichier configuration.ini ou remplacez son contenu par le fichier configuration.ini.default de Chamilo.
sudo apt-get install php5-xapian sudo /etc/init.d/apache2 restartThen go to your administration page -> Configuration settings -> Search and enable the search tool. Follow the recommendations on the page to get the complete indexing suite installed. Once you're done, all documents you import into your Chamilo portal in a recognized format will be indexed and searchable. Chamilo Administrators training (which you can ask any Chamilo's Official Provider for) include a full review of the full-text search feature.
Note: Xapian's licensing for the PHP extension is a bit different than what is necessary to enter the Debian repositories, so it has been excluded. You can, however, generate your own package by following the packaging instructions on Xapian's wiki.
sudo apt-get install libreoffice screen sudo adduser rapid sudo adduser rapid www-data screen sudo -s su - rapid /usr/bin/libreoffice --headless --accept="socket,host=127.0.0.1,port=2002;urp;" CTRL+a, CTRL+dThen go to your administration page -> Chamilo Rapid and set the host to "localhost" and the port to "2002". Save. Go to your course, learning path tool and see the new icon appeared. Import your PPT. This should work. Note: Sometimes, this doesn't work out so easily. You can probably ask for the assistance of any system administrator around with a bit of Java and PHP experience, or you can always ask one of the Chamilo's Official Providers for assistance (ask for a guaranteed commercial contract).
Since Chamilo 1.8.8, a few tasks need to be executed regularly in order to get the best out of your server resources. One of such tasks (and the only one around at the time of Chamilo 1.8.8) is the sending of internal messaging notifications by e-mail, i.e. when you receive an e-mail from another person or from a group inside the internal messaging system of Chamilo, if all e-mails are sent immediately, then you might not have the chance to receive them at your pace, once a day or even once a week. For cases like this you, as a Chamilo administrator, should setup a cron process on the server to check the queue of e-mails and send is timely.
35 * * * * wget -O - -q -t 1 http://campus.example.com/main/cron/run.phpMake sure you have a look into run.php as maybe you want to change a few settings there.
// Custom name_order_conventions //$_configuration['name_order_conventions'] = array( // 'french' => array('format' => 'title last_name first_name', 'sort_by' => 'last_name') //);
// Custom name_order_conventions $_configuration['name_order_conventions'] = array( 'french' => array('format' => 'first_name last_name', 'sort_by' => 'last_name') );
$_configuration['enable_x_sendfile_headers'] = true;If you have issues with files taking a long time to download, make sure you reconfigure your webserver and add this line. You should see an notable difference in download time.
Chamilo supporte la connexion à deux serveurs de vidéo-conférence : BigBlueButton (versions 0.81 et 0.9) et OpenMeetings.
Tandis que BigBlueButton paraît plus simple d'installation, plus clairement documenté et plus
abouti esthétiquement, certains utilisateurs ont attesté que OpenMeetings consomme moins
de bande passante, est moins restrictif en termes d'environnement et offre plus d'outils
et de connecteurs.
La décision vous revient, mais dans chaque cas vous aurez à installer un serveur de vidéo-conférence
en plus du processus d'installation normal de Chamilo.
Consultez le guide d'installation de BigBlueButton
Une fois celui-ci installé, entrez la commande "bbb-conf --secret" pour obtenir les paramètres à indiquer dans le plugin
"Vidéo-conférence" de Chamilo (page Paramètres de configuration).
Une icône "Vidéo-conférence" devrait alors apparaître dans chaque cours.
Chamilo LMS 1.10 est la première version nécessitant que le serveur web autorise les redirections d'url (et donc 1.11 également).
Pour Apache, il s'agit d'active le module rewrite et d'autoriser l'utilisation des fichiers .htaccess ou d'ajouter une section spécifique dans le Virtual Host.
Pour Nginx, il s'agit de définir les règles de redirections dans le Virtual Host.
Pour être certain que c'est à la portée de tous, nous recommandons le fichier de configuration ci-dessous pour vous aider dans les deux cas.
Notez que l'utilisation d'un fichier .htaccess est la solution la plus facile mais peut altérer les performances de votre serveur,
car les fichiers .htaccess sont interprêtés à *chaque* requête, alors qu'une section de configuration supplémentaire dans le Virtual Host
est compilée uniquement lors du chargement du serveur.
AllowOverride All Order allow,deny allow from allou, si vous travaillez avec Apache 2.4, la syntaxe est légèrement différente et ressemble plutôt à ça :
AllowOverride All Require all granted
<LocationMatch "/.git*"> order deny,allow deny from all </LocationMatch> <Directory ~/.> AllowOverride None Options -Indexes </Directory> <Directory "/var/www/chamilo"> RewriteEngine On RewriteCond %{QUERY_STRING} ^id=(.*)$ RewriteRule ^certificates/$ certificates/index.php?id=%1 [L] RewriteRule ^courses/([^/]+)/?$ main/course_home/course_home.php?cDir=$1 [QSA,L] RewriteRule ^courses/([^/]+)/index.php$ main/course_home/course_home.php?cDir=$1 [QSA,L] RewriteRule ^courses/([^/]+)/scorm/(.*([\.js|\.css|\.png|\.jpg|\.jpeg|\.gif]))$ app/courses/$1/scorm/$2 [QSA,L] RewriteRule ^courses/([^/]+)/scorm/(.*)$ main/document/download_scorm.php?doc_url=/$2&cDir=$1 [QSA,L] RewriteRule ^courses/([^/]+)/document/certificates/(.*)$ app/courses/$1/document/certificates/$2 [QSA,L] RewriteRule ^courses/([^/]+)/document/(.*)$ main/document/download.php?doc_url=/$2&cDir=$1 [QSA,L] RewriteRule ^courses/([^/]+)/upload/course_home_icons/(.*([\.js|\.css|\.png|\.jpg|\.jpeg|\.gif]))$ app/courses/$1/upload/course_home_icons/$2 [QSA,L] RewriteRule ^courses/([^/]+)/upload/([^/]+)/(.*)$ main/document/download_uploaded_files.php?code=$1&type=$2&file=$3 [QSA,L] RewriteRule ^courses/([^/]+)/work/(.*)$ main/work/download.php?file=work/$2&cDir=$1 [QSA,L] RewriteRule ^courses/([^/]+)/course-pic85x85.png$ main/inc/ajax/course.ajax.php?a=get_course_image&code=$1&image=course_image_source [QSA,L] RewriteRule ^courses/([^/]+)/course-pic.png$ main/inc/ajax/course.ajax.php?a=get_course_image&code=$1&image=course_image_large_source [QSA,L] RewriteRule ^courses/([^/]+)/(.*)$ app/courses/$1/$2 [QSA,L] RewriteRule ^session/(\d{1,})/about/?$ main/session/about.php?session_id=$1 [L] RewriteRule ^course/(\d{1,})/about/?$ main/course_info/about.php?course_id=$1 [L] RewriteRule ^badge/(\d{1,}) main/badge/issued.php?issue=$1 [L] RewriteRule ^skill/(\d{1,})/user/(\d{1,}) main/badge/issued_all.php?skill=$1&user=$2 [L] RewriteRule ^badge/(\d{1,})/user/(\d{1,}) main/badge/issued_all.php?skill=$1&user=$2 [L] RewriteRule ^main/exercice/(.*)$ main/exercise/$1 [QSA,L] RewriteRule ^main/newscorm/(.*)$ main/lp/$1 [QSA,L] RewriteRule ^service/(\d{1,})$ plugin/buycourses/src/service_information.php?service_id=$1 [L] RewriteRule ^lti/os$ plugin/ims_lti/outcome_service.php [L] RewriteRule ^(tests|.git) - [F,L,NC] </Directory>
RewriteRule ^courses/([^/]+)/document/(.*)$ main/document/download.php?doc_url=/$2&cDir=$1 [QSA,L]et supprimez-la ou commentez-la, puis remplacez-la par ces deux lignes :
RewriteCond %{REQUEST_URI} !\.(gif|jpg|jpeg|png|webp|ico|icon|swf|avi|mp3|ogg|wav|ttf|otf|eot|woff|webm|mp4) RewriteRule ^courses/([^/]+)/document/(.*)$ main/document/download.php?doc_url=/$2&cDir=$1 [QSA|L]
# Add your own "server {" header here with listen, server_name, access_log, error_log, index, root and error_page params charset utf-8; location @rewrite{ rewrite ^certificates/$ certificates/index.php last; rewrite ^/courses/([^/]+)/$ /main/course_home/course_home.php?cDir=$1 last; rewrite ^/courses/([^/]+)/index.php$ /main/course_home/course_home.php?cDir=$1 last; rewrite ^/courses/([^/]+)/scorm/(.*([\.js|\.css|\.png|\.jpg|\.jpeg|\.gif]))$ app/courses/$1/scorm/$2 last; rewrite ^/courses/([^/]+)/scorm/(.*)$ /main/document/download_scorm.php?doc_url=/$2&cDir=$1 last; # Alternatively, you can choose to give direct access to all SCORM files, which is much faster but less secure # rewrite "^/courses/([^/]+)/scorm/(.*)$" /app/courses/$1/scorm/$2 break; rewrite "^/courses/([^/]+)/document/certificates/(.*)$" /app/courses/$1/document/certificates/$2 last; rewrite ^/courses/([^/]+)/document/(.*)$ /main/document/download.php?doc_url=/$2&cDir=$1 last; rewrite ^/courses/([^/]+)/upload/([^/]+)/(.*)$ /main/document/download_uploaded_files.php?code=$1&type=$2&file=$3 last; rewrite ^/courses/([^/]+)/work/(.*)$ /main/work/download.php?file=work/$2&cDir=$1 last; rewrite ^/courses/([^/]+)/upload/course_home_icons/(.*([\.png|\.jpg|\.jpeg|\.gif]))$ app/courses/$1/upload/course_home_icons/$2 last; rewrite ^/courses/([^/]+)/(.*)$ /app/courses/$1/$2 last; rewrite ^/session/([^/]+)/about/?$ /main/session/about.php?session_id=$1 last; rewrite ^/course/([^/]+)/about/?$ /main/course_info/about.php?course_id=$1 last; rewrite ^/badge/(\d+) /main/badge/issued.php?issue=$1 last; rewrite ^/skill/(\d+)/user/(\d+)$ /main/badge/issued_all.php?skill=$1&user=$2 last; rewrite ^/badge/(\d+)/user/(\d+)$ /main/badge/issued_all.php?skill=$1&user=$2 last; rewrite ^/main/exercice/(.*)$ /main/exercise/$1 last; rewrite ^/main/newscorm/(.*)$ /main/lp/$1 last; rewrite ^/service/(\d+)$ /plugin/buycourses/src/service_information.php?service_id=$1 last; rewrite "^/main/upload/users/(.*)/(.*)/my_files/(.*)$" /app/upload/users/$1/$2/my_files/$3 last; try_files $uri /index.php$is_args$args; break; } location / { try_files $uri @rewrite; } location /main { rewrite ^/main/([^/]+)/?$ /main/$1/index.php last; } location ~ \.php$ { client_max_body_size 20M; try_files $uri @rewrite; fastcgi_pass unix:/var/run/php7.4-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS off; } # Serve static files directly location ~* \.(png|jpe?g|gif|ico|js|css|mp3|swf|flv|mp4|ogg|woff|woff2)$ { rewrite ^/courses/([^/]+)/course-pic85x85.png$ /app/courses/$1/course-pic85x85.png last; rewrite ^/courses/([^/]+)/course-pic.png$ /app/courses/$1/course-pic.png last; rewrite ^/courses/([^/]+)/scorm/(.*)$ /main/document/download_scorm.php?doc_url=/$2&cDir=$1 last; rewrite ^/courses/([^/]+)/document/(.*)$ /main/document/download.php?doc_url=/$2&cDir=$1 last; rewrite ^/courses/([^/]+)/work/(.*)$ /main/work/download.php?file=work/$2&cDir=$1 last; rewrite ^/courses/([^/]+)/upload/(.*)$ /app/courses/$1/upload/$2 last; # For all these media resources not treated by previous rewrites, give direct access (no permission check) rewrite ^/courses/(.*)$ /app/courses/$1 break; expires 30d; access_log off; try_files $uri @rewrite; } location ~ ~\.(ht|git){ deny all; } location ^~ /tests/ { deny all; }
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpRedirect enabled="false" destination="" httpResponseStatus="Permanent" /> <rewrite> <rules> <rule name="rule 1v" stopProcessing="true"> <match url="^certificates/$" /> <action type="Rewrite" url="certificates/index.php?id=%1" appendQueryString="false" /> </rule> <rule name="rule 2v" enabled="true" stopProcessing="true"> <match url="^courses/([^/]+)/?$" /> <action type="Rewrite" url="main/course_home/course_home.php?cDir={R:1}" appendQueryString="true" /> </rule> <rule name="rule 3v" enabled="true" stopProcessing="true"> <match url="^courses/([^/]+)/index.php$" /> <action type="Rewrite" url="main/course_home/course_home.php?cDir={R:1}" /> </rule> <rule name="rule 4v" stopProcessing="true"> <match url="^courses/([^/]+)/scorm/(.*([\.js|\.css|\.png|\.jpg|\.jpeg|\.gif]))$" /> <action type="Rewrite" url="app/courses/{R:1}/scorm/{R:2}" /> </rule> <rule name="rule 5v" stopProcessing="true"> <match url="^courses/([^/]+)/scorm/(.*)$" /> <action type="Rewrite" url="main/document/download_scorm.php?doc_url=/{R:2}&cDir={R:1}" /> </rule> <rule name="rule v6" stopProcessing="true"> <match url="^courses/([^/]+)/document/certificates/(.*)$" /> <action type="Rewrite" url="app/courses/{R:1}/document/certificates/{R:2}" /> </rule> <rule name="rule v7" stopProcessing="true"> <match url="^courses/([^/]+)/document/(.*)$" /> <action type="Rewrite" url="main/document/download.php?doc_url=/{R:2}&cDir={R:1}" /> </rule> <rule name="rule v8" stopProcessing="true"> <match url="^courses/([^/]+)/upload/course_home_icons/(.*([\.js|\.css|\.png|\.jpg|\.jpeg|\.gif]))$" /> <action type="Rewrite" url="app/courses/{R:1}/upload/course_home_icons/{R:2}" /> </rule> <rule name="rule v9" stopProcessing="true"> <match url="^courses/([^/]+)/upload/([^/]+)/(.*)$" /> <action type="Rewrite" url="main/document/download_uploaded_files.php?code={R:1}&type={R:2}&file={R:3}" /> </rule> <rule name="rule v10" stopProcessing="true"> <match url="^courses/([^/]+)/work/(.*)$" /> <action type="Rewrite" url="main/work/download.php?file=work/{R:2}&cDir={R:1}" /> </rule> <rule name="rule v11" stopProcessing="true"> <match url="^courses/([^/]+)/course-pic85x85.png$" /> <action type="Rewrite" url="main/inc/ajax/course.ajax.php?a=get_course_image&code={R:1}&image=course_image_source" appendQueryString="true" /> </rule> <rule name="rule v12" stopProcessing="true"> <match url="^courses/([^/]+)/course-pic.png$" /> <action type="Rewrite" url="main/inc/ajax/course.ajax.php?a=get_course_image&code={R:1}&image=course_image_large_source" appendQueryString="true" /> </rule> <rule name="rule v13" stopProcessing="true"> <match url="^courses/([^/]+)/(.*)$" /> <action type="Rewrite" url="app/courses/{R:1}/{R:2}" appendQueryString="false" /> </rule> <rule name="rule v14" stopProcessing="true"> <match url="^session/(\d{1,})/about/?$" /> <action type="Rewrite" url="main/session/about.php?session_id={R:1}" appendQueryString="false" /> </rule> <rule name="rule v15" stopProcessing="true"> <match url="^course/(\d{1,})/about/?$" /> <action type="Rewrite" url="main/course_info/about.php?course_id={R:1}" appendQueryString="false" /> </rule> <rule name="rule v16" stopProcessing="true"> <match url="^badge/(\d{1,})" /> <action type="Rewrite" url="main/badge/issued.php?issue={R:1}" appendQueryString="false" /> </rule> <rule name="rule v17" stopProcessing="true"> <match url="^skill/(\d{1,})/user/(\d{1,})" /> <action type="Rewrite" url="main/badge/issued_all.php?skill={R:1}&user={R:2}" appendQueryString="false" /> </rule> <rule name="rule v18" stopProcessing="true"> <match url="^badge/(\d{1,})/user/(\d{1,})" /> <action type="Rewrite" url="main/badge/issued_all.php?skill={R:1}&user={R:2}" appendQueryString="false" /> </rule> <rule name="rule v19" stopProcessing="true"> <match url="^main/exercice/(.*)$" /> <action type="Rewrite" url="main/exercise/{R:1}" appendQueryString="true" /> </rule> <rule name="rule v20" stopProcessing="true"> <match url="^main/newscorm/(.*)$" /> <action type="Rewrite" url="main/lp/{R:1}" appendQueryString="true" /> </rule> <rule name="rule v21" stopProcessing="true"> <match url="^service/(\d{1,})$" /> <action type="Rewrite" url="plugin/buycourses/src/service_information.php?service_id={R:1}" appendQueryString="false" /> </rule> <rule name="rule v22" stopProcessing="true"> <match url="^lti/os$" /> <action type="Rewrite" url="plugin/ims_lti/outcome_service.php" appendQueryString="false" /> </rule> <rule name="rule v23" stopProcessing="true"> <match url="^(tests|.git)" ignoreCase="false" /> <action type="Rewrite" url="/-" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Adresse de contact
Mail: info@chamilo.org