Attention : vous consultez actuellement la documentation dédiée aux versions 2.x de Moodle. La documentation pour les versions 3.x de Moodle est consultable ici : Administration en ligne de commande et celle pour Moodle 4.x est consultable là : Administration en ligne de commande.

« Administration en ligne de commande » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
(Réorganisation)
(Améliorations)
Ligne 1 : Ligne 1 :
{{Installation}}{{Traduction}}== Lancer des scripts en ligne de commande ==
{{Installation}}{{Traduction}}== Lancer des scripts en ligne de commande ==


Si vous avez accès en ligne de commande à votre serveur web, différents scripts pourront vous être utiles pour l'administration de Moodle. Les outils pré-installés en standard sont situés dans le dossier <code>admin/cli/*</code> ('''CLI''' = ''command line interface''). Des plugins fournissent leurs propres outils en ligne de commande dans des scripts situés dans leur propre dossier <code>cli</code>. Par exemple, le script de synchronisation enrol_db est situé dans enrol/db/cli/.  
Si vous avez accès en ligne de commande à votre serveur web, différents scripts pourront vous être utiles pour l'administration de Moodle. Les outils d'aministration générale sont situés dans le dossier <code>admin/cli/*</code> ('''CLI''' = ''command line interface''). Les plugins peuvent fournir leurs propres outils en ligne de commande via des scripts situés dans leur propre dossier <code>cli</code>. Par exemple, le script de synchronisation d'inscription par base de donnée enrol_db est situé dans enrol/db/cli/.  


Pour éviter des problèmes de contrôle d'accès, ces scripts doivent être lancés sou le nom de l'utilisateur possesseur du processus du serveur web (''apache'', ''www'', ''wwrun'', ''httpd'', etc.). Ceci est particulièrement important pour les tâches d'installation et de mise à jour en ligne de commande, puisque durant ces tâches des fichiers sont créés dans le dossier de données ''moodledata'' et que le serveur web doit y avoir accès en écriture. Si vous êtes connecté en tant que root, vous lancerez donc les scripts ainsi :
Pour éviter des problèmes de contrôle d'accès, ces scripts doivent être lancés sous le nom de l'utilisateur possesseur du processus du serveur web (''apache'', ''www'', ''wwrun'', ''httpd'', etc.). Ceci est particulièrement important pour les tâches d'installation et de mise à jour en ligne de commande, puisque durant ces tâches des fichiers sont créés dans le dossier de données ''moodledata'' et que le serveur web doit y avoir accès en écriture. Si vous êtes connecté en tant que root, vous lancerez donc les scripts ainsi :


     $ cd /chemin/vers/votre/dossier/moodle
     $ cd /chemin/vers/votre/dossier/moodle
     $ sudo -u apache /usr/bin/php admin/cli/somescript.php --params
     $ sudo -u apache /usr/bin/php admin/cli/nom_script.php --parametres


La plupart des scripts acceptent la paramètre standard --help (ou -h) pour afficher l'aide sur l'utilisation du script, par exemple :
La plupart des scripts acceptent la paramètre standard --help (ou -h) pour afficher l'aide sur l'utilisation du script, par exemple :
Ligne 71 : Ligne 71 :
== Conversion du moteur de stockage MySQL ==
== Conversion du moteur de stockage MySQL ==


Si votre site Moodle tourne sur la base de données MySQL et utilise le moteur de stockage par défaut MyISAM pour vos tables, vous pouvez les convertir pour utiliser un moteur plus fiable comme InnoDB (certains diraient même que vous devriez quitter MySQL et passer à PostgreSQL ;-) ).
Si votre site Moodle tourne sur la base de données MySQL et utilise le moteur de stockage par défaut MyISAM pour vos tables, vous pouvez les [[Migration de MyISAM vers InnoDB|convertir pour utiliser un moteur plus fiable comme InnoDB]] (certains diraient même que vous devriez quitter MySQL et passer à PostgreSQL ;-) ).


     $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB
     $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB
Ligne 77 : Ligne 77 :
== Conversion des tables InnoDB au format Barracuda ==
== Conversion des tables InnoDB au format Barracuda ==


Some users are getting the following MySQL error during course restore:
Certains utilisateurs rencontrent l'erreur MySQL suivante lors de la restauration de cours :


   Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.
   Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.


The error is due to the fact that the MySQL default InnoDB file format (Antelope) cannot handle more than 10 text columns. Thus you are recommended to change the InnoDB file format to Barracuda using the following command:
L'erreur est liée au fait que MySQL utilise par défaut pour le moteur InnoDB le format de fichier Antelope, qui ne peut pas gérer plus de 10 colonnes de texte. Il est donc recommandé de modifier le format de fichier d'InnoDB pour utiliser Barracuda en utilisant cette commande :


   php admin/cli/mysql_compressed_rows.php
   php admin/cli/mysql_compressed_rows.php


For further information on InnoDB file formats see:
Pour plus d'informations sur les formats de fichier d'InnoDB :


* http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_antelope
* http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_antelope

Version du 21 mai 2015 à 08:28

Remarque : la traduction de cette page n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.

Remarque : cet article est en cours de rédaction. N'hésitez pas à le compléter. Veuillez utiliser la page de discussion ou un forum adéquat de Moodle en français pour vos recommandations et suggestions d'améliorations.

Lancer des scripts en ligne de commande

Si vous avez accès en ligne de commande à votre serveur web, différents scripts pourront vous être utiles pour l'administration de Moodle. Les outils d'aministration générale sont situés dans le dossier admin/cli/* (CLI = command line interface). Les plugins peuvent fournir leurs propres outils en ligne de commande via des scripts situés dans leur propre dossier cli. Par exemple, le script de synchronisation d'inscription par base de donnée enrol_db est situé dans enrol/db/cli/.

Pour éviter des problèmes de contrôle d'accès, ces scripts doivent être lancés sous le nom de l'utilisateur possesseur du processus du serveur web (apache, www, wwrun, httpd, etc.). Ceci est particulièrement important pour les tâches d'installation et de mise à jour en ligne de commande, puisque durant ces tâches des fichiers sont créés dans le dossier de données moodledata et que le serveur web doit y avoir accès en écriture. Si vous êtes connecté en tant que root, vous lancerez donc les scripts ainsi :

   $ cd /chemin/vers/votre/dossier/moodle
   $ sudo -u apache /usr/bin/php admin/cli/nom_script.php --parametres

La plupart des scripts acceptent la paramètre standard --help (ou -h) pour afficher l'aide sur l'utilisation du script, par exemple :

   $ sudo -u apache /usr/bin/php admin/cli/install.php --help

Mise à jour

Moodle peut être mis à jour en ligne de commande. Tout comme pour le script d'installation, il y a pour la mise à jour un mode interactif et un mode non-interactif. Le script ne met pas le site en mode de maintenance. Vous devrez le faire vous-même (en ligne de commande, par exemple). En outre, le script n'effectue aucune sauvegarde (mais si vous lisez cette page, vous avez certainement mis en place vos propres scripts de sauvegarde de moodledata et de la base de données, n'est-ce-pas ?). La commande est la suivante :

   $ sudo -u apache /usr/bin/php admin/cli/upgrade.php

La mise à jour en CLI est très confortable, notamment en combinaison avec l'utilisation de Git pour télécharger le code source de Moodle (voir Git pour Administrateurs). La procédure ci-dessous montre comment mettre à jour votre site en quelques secondes, tout en préservant vos éventuelles personnalisations locales :

   $ cd /var/www/sites/moodle/htdocs/
   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable
   $ git pull
   $ sudo -u apache /usr/bin/php admin/cli/upgrade.php
   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable

Installation

Moodle peut-être installé en ligne de commande de deux façons différentes. En mode interactif, le script d'installation vous demandera toutes les données nécessaires afin de procéder à l'installation correctement. En mode non-interactif, vous devez fournir toutes les données nécessaires comme paramètres du script et le nouveau site sera créé automatiquement. Les paramètres peuvent également être passés en mode interactif ; ils seront dans ce cas utilisés comme valeur par défaut durant la session interactive.

   $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=fr

Mode de maintenance

Pour mettre votre site en mode de maintenance, vous pouvez utiliser :

   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable

Pour désactiver la maintenance, il suffit d'utiliser plutôt le paramètre --disable

   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable

Mode hors ligne

Dans certaines situations, vous aurez besoin de mettre votre site Moodle hors ligne en le rendant inaccessible, tout en conservant certaines fonctionnalités, par exemple parce que d'autres pages ou applications web y tournent. Si un fichier du nom de climaintenance.html est placé dans le dossier moodledata tout en haut de la hiérarchie, Moodle affichera automatiquement le contenu de ce fichier au lieu de toute autre page.

   $ cd /var/www/sites/moodle/moodledata/
   $ echo '<h1>Désolé, le site Moodle est actuellement en maintenance</h1>' > climaintenance.html

Vous pouvez préparer une page HTML avec votre charte graphique pour informer vos utilisateurs que le serveur est temporairement inaccessible et conserver ce fichier dans le dossier moodledata sous un nom comme climaintenance.off et le renommer en climaintenance.html au besoin.

Personnalisation des valeurs par défaut

Durant l'installation ou la mise à jour en ligne de commande, Moodle définit des variables d'administration à leur valeur par défaut. Vous pouvez définir d'autres valeurs par défaut. Voyez MDL-17850 pour des détails. En résumé, il suffit de créer un fichier local/defaults.php dans votre installation Moodle. Le format de ce fichier est le suivant :

<?php $defaults['pluginname']['settingname'] = 'settingvalue'; // pour les plugins $defaults['moodle']['settingname'] = 'settingvalue'; // pour les paramètres du cœur de Moodle

Ces valeurs par défaut sont utilisées lors de l'installation, de la mise à jour, et sont en outre affichées comme valeur par défaut dans les pages d'administration du site.

Réinitialisation du mot de passe

Si vous avez perdu votre mot de passe administrateur (ou souhaitez définir le mot de passe d'un autre utilisateur), vous pouvez utiliser le script reset_password.php. Ce script définit le mot de passe de l'utilisateur spécifié, en tenant compte correctement du sel de mot de passe.

   $ sudo -u apache /usr/bin/php admin/cli/reset_password.php

Conversion du moteur de stockage MySQL

Si votre site Moodle tourne sur la base de données MySQL et utilise le moteur de stockage par défaut MyISAM pour vos tables, vous pouvez les convertir pour utiliser un moteur plus fiable comme InnoDB (certains diraient même que vous devriez quitter MySQL et passer à PostgreSQL ;-) ).

   $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB

Conversion des tables InnoDB au format Barracuda

Certains utilisateurs rencontrent l'erreur MySQL suivante lors de la restauration de cours :

 Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.

L'erreur est liée au fait que MySQL utilise par défaut pour le moteur InnoDB le format de fichier Antelope, qui ne peut pas gérer plus de 10 colonnes de texte. Il est donc recommandé de modifier le format de fichier d'InnoDB pour utiliser Barracuda en utilisant cette commande :

 php admin/cli/mysql_compressed_rows.php

Pour plus d'informations sur les formats de fichier d'InnoDB :

Exécution du cron en ligne de commande

Dans les versions 1.x, on pouvait lancer le script admin/cron.php soit en ligne de commande, soit depuis le web. Depuis Moodle 2.0, seul le script admin/cli/cron.php peut être lancé via la ligne de commande.

Tâches programmées

Scheduled tasks are automatically run by the cron script, but the specific tasks which run on each cron iteration are determined by the scheduled tasks configuration. It is possible to override the scheduled tasks configuration and run a single scheduled task immediately using the admin/tool/task/cli/schedule_task.php script.

This script accepts the following arguments:

--list - list all the known scheduled tasks. The tasks are listed by the class name used to run the task. This class name is required as the argument to the next option in order to run a specific task immediately.
--execute=<task> - Runs a single scheduled task immediately - regardless of scheduling settings. This will even run disabled tasks. Tasks will still use locking to prevent concurrent execution of the same task - even on clusters. The format of the <task> argument must be the same as returned by the --list option above.

Note: You must escape the "\" with an extra \ when using the --execute command. Take the following for example:

php schedule_task.php --list

will return something like:

== List of scheduled tasks (http://yourserver.com/moodle) ==
\enrol_imsenterprise\task\cron_task                10 * * * * *      ASAP
\logstore_legacy\task\cleanup_task                 * 5 * * * *       ASAP
\logstore_standard\task\cleanup_task               * 4 * * * *       Wednesday, November 12, 2014, 4:35 AM
\mod_forum\task\cron_task                          * * * * * *       ASAP
\core\task\automated_backup_task                   50 * * * * *      ASAP

...

To run the first task in that list, you would execute

php schedule_task.php --execute=\\enrol_imsenterprise\\task\\cron_task

Transfert de la base de données

Un script CLI pour transférer votre base de données (par exemple de MySQL à PostgreSQL) se trouve dans admin/tool/dbtransfer/cli/migrate.php.

Purger les caches

Vous pouvez purger les caches en utilisant ce script :

 $ sudo -u apache /usr/bin/php admin/cli/purge_caches.php

Réparer les séquences cours / module

In rare cases (such as after upgrading from a very old version of Moodle), the course / section / module sequence data can be out of sync. This can cause various problems for affected courses, such as sections not appearing, backups failing, pages not displaying etc. There is a specific check to check for errors caused by this problem, and to fix the data in the database if they are found. To run this script please use the command below:

 php admin/cli/fix_course_sequence.php -c=* --fix

This will check every course in Moodle and report which ones had errors and were fixed.

Voir aussi