Taille des fichiers déposés

Restriction de la taille des fichiers déposés

La question la plus fréquemment posée sur moodle.org est probablement "Comment puis-je augmenter la limite de taille du fichier téléchargés" ? Les changements qui doivent être faits sont les mêmes dans toutes les versions de Moodle, et ils doivent être effectués à différents endroits. La taille des fichiers téléchargés est limitée de différentes manière, et chacune d'entre elles restreint éa suivante dans cette liste :

  1. Réglage au niveau du serveur
  2. Réglage au niveau du site Moodle
  3. Réglage au niveau du cours
  4. Niveau au niveau de l'activité

Ce problème suscite des discussions, principalement parce que l'on pourrait penser qu'un tel réglage devrait pouvoir se configurer dans Moodle lui-même. Malheureusement, ce n'est pas le cas, car ce type de réglage fait partie de l'environnement serveur et doit donc y être configuré, et Moodle ne peut pas modifier des réglages en dehors de lui-même.

Accès physique au serveur

Ces instructions supposent que vous disposez d'un accès physique et administratif complet à votre serveur. Si vous utilisez un serveur hébergé, vous devrez probablement chercher d'autres moyens d'augmenter la taille de téléchargement de votre fichier.

Il y a des avantages et des inconvénients aux deux méthodes ci-dessous. Si vous modifiez le fichier php.ini, les changements affecteront toutes les applications php sur votre serveur. Depuis PHP5, vous ne pouvez avoir qu'un seul fichier php.ini sur votre serveur. La méthode php.ini fonctionnera cependant avec tous les serveurs web. La méthode .htaccess n'affectera que le dossier et tous les sous-dossiers dans lesquels il est placé, mais vous devez avoir activé certains paramètres dans Apache.

Restreindre la taille du fichier : comment ça marche ?

La machine hôte peut fixer une limite à la taille maximale de téléchargement de fichiers dans l'environnement du serveur, que vous pouvez remplacer si elle vous le permet. PHP a un paramètre utilisé pour limiter la taille des fichiers qu'il gère en téléchargement. Cette taille est indiquée dans le php.ini, et est déterminée par le gestionnaire du serveur en fonction de ses perceptions particulières et des besoins de sa clientèle. Cette taille apparaît dans Moodle comme limite maximale dans la liste déroulante Administration > Sécurité > Réglages de sécurité du site > Taille maximale des fichiers déposés.

Bien entendu, pour répondre aux besoins de votre site Moodle, vous pouvez décider d'abaisser dans ce menu déroulant la taille maximale au niveau du site Moodle, ce qui fixera la taille maximale des fichiers déposés au niveau des cours.

Dans la page des réglages du cours, il est également possible de diminuer encore cette taille. À aucun moment le paramètre du cours ne pourra dépasser le paramètre défini au niveau du site, pas plus que le paramètre au niveau du site ne peut dépasser le paramètre défini dans php.ini, qui lui-même ne peut pas remplacer le paramètre du serveur. La seule exception à cette règle est que vous pouvez manipuler à la fois les paramètres du serveur et ceux de PHP, et comment le faire est décrit ci-dessous.

Modifier le fichier php.ini

Ces instructions vous montrent comment modifier la taille de téléchargement du fichier en éditant votre fichier php.ini.

Dans la plupart des cas, ces instructions se résument à ce qui suit. Dans le fichier /etc/php5/apache2/php.ini vous devez changer "post_max_size", "upload_max_filesize" et "max_execution_time" en valeurs adaptées à vos besoins en utilisant l'éditeur auquel vous êtes habitué.

Vous trouverez ci-dessous quelques instructions ligne par ligne pour diverses installations de Moodle.

Instructions d'Ubuntu Linux

Ces instructions supposent que vous avez installé le paquetage standard Moodle, PHP 5 et Apache 2 via apt-get et que vous avez tout laissé par défaut. Si vous avez compilé vous-même, je présume que vous saurez où sont vos fichiers php.ini !

Vous devez éditer les trois paramètres suivants dans votre fichier php.ini situé sur : /etc/php5/apache2/ Voici un ensemble d'instructions à suivre ligne par ligne.

  • Tapez "sudo nano /etc/php5/apache2/php.ini".
  • Appuyez sur Ctrl et W et tapez "post_max_size".
  • Changez la valeur par le nombre de Mo que vous voulez que votre site accepte comme téléchargement.
  • Appuyez sur Ctrl et W et tapez "upload_max_filesize".
  • Changez la valeur par le nombre de Mo que vous voulez que votre site accepte comme téléchargement.
  • Appuyez sur Ctrl et W et tapez "max_execution_time".
  • Modifiez la valeur à 600
  • Appuyez sur Ctrl et O
  • Appuyez sur Ctrl et X
  • Tapez sudo apachectl redémarrer

NGINX les administrateurs système doivent également ajouter "client_max_body_size XXXm ;" dans la section "http" de leur fichier de configuration principal nginx. (voir plus d'infos) si vous avez SSL, cela vous demandera de définir ce qui précède pour le SSL serveur etemplacement aussi.

Votre nouvelle limite de taille de fichier devrait maintenant apparaître dans Administration > Sécurité > Politiques du site > Taille maximale du fichier téléchargé

XAMPP sur Mac Instructions

Ce sont les instructions pour faire ceci pour Moodle sur un Mac en utilisant le XAMPP exemple de paquetage de téléchargement disponible. (Ceci n'est pas pour un serveur de production OS X.)

  • Fermez Apache et MySQL s'ils s'exécutent via l'application XAMPP Control et fermez l'application XAMPP Control.
  • Ouvrez Finder et allez à Applications
  • Naviguez vers le bas et ouvrez le dossier XAMPP / xamppfiles / etc.
  • Ouvrez le fichier php.ini avec TextEdit (ou un autre éditeur de texte brut)
  • Recherchez le paramètre post_max_size et augmentez-le de 128M (par défaut) à plus de 500M ; 500M est le maximum.
  • Faites de même pour upload_max_filesize (faites les mêmes chiffres)
  • Recherchez le paramètre max_execution_time et augmentez-le à 300 (ou plus si vous obtenez des délais d'attente sur les téléchargements).
  • Enregistrer le fichier php.ini
  • redémarrer Apache et MySQL comme d'habitude

Remarque : Vous pouvez obtenir une erreur "permission refusée" lors de l'enregistrement du fichier php.ini sauf si vous êtes connecté avec un accès administrateur à votre Mac. Pour contourner ce problème, vous pouvez définir le répertoire /etc dans lequel se trouve le fichier php.ini pour qu'il puisse être écrit temporairement. Pour savoir comment faire, voir ici ou ici.

Instructions pour Windows XP et Server 2003

Ces instructions supposent que vous avez téléchargé le dernier paquetage zip PHP 5.3.x Windows et que vous l'avez extrait vers C:\PHP. Si vous avez installé PHP à un autre emplacement, changez toutes les références à "C:\PHP" à l'emplacement où vous avez installé PHP aussi.

Téléchargez et installez n'importe quel éditeur de texte qui peut enregistrer le fichier au format UTF-8,Crimson Editor en est un, NotePad++ en est un autre, utilisez-le plutôt que Wordpad ou Notepad ! Le problème est que WordPad ou Notepad inclura des caractères cachés qui peuvent ne pas être compatibles avec les exigences de PHP.
  • Ouvrez C:\PHP
  • Cliquez avec le bouton droit de la souris sur le fichier php.ini dans ce dossier et choisissez "Ouvrir avec..." en sélectionnant l'éditeur de votre choix.
  • Appuyez sur Ctrl + F et tapez "post_max_size" (cliquez sur Find...", si nécessaire).
  • Changez la valeur par le nombre de Mo que vous voulez que votre site accepte comme téléchargement.
  • Appuyez sur Ctrl + F et tapez "upload_max_filesize" (cliquez sur Find...", si nécessaire)
  • Changez la valeur par le nombre de Mo que vous voulez que votre site accepte comme téléchargement.
  • Appuyez sur Ctrl + F et tapez "max_execution_time" (cliquez sur Find...", si nécessaire)
  • Modifiez la valeur à 600
  • Appuyez sur Ctrl et S ou sur le bouton de sauvegarde.
  • Quittez votre éditeur.
  • Redémarrez votre serveur web pour recharger PHP avec les modifications éditées.
    • Pour IIS
    • Ouvrez le menu Démarrer sur votre serveur et sélectionnez "Exécuter".
    • Tapez "iisreset /RESTART".
    • Pour Apache 2 et Windows XP.
    • Allez dans Démarrer > Tous les programmes > Apache > Redémarrer
    • Pour Apache 2 et Windows Server
    • La commande suivante fonctionnera tant que vous aurez installé Apache 2 en tant que service sur votre serveur Windows
    • Ouvrez votre menu Démarrer sur votre serveur et sélectionnez "Exécuter".
    • Tapez "httpd -k restart".

Votre nouvelle limite de taille de fichier devrait maintenant apparaître dans Administration > Sécurité > Politiques du site > Taille maximale du fichier téléchargé

REMARQUE : Ces instructions couvrent également le programme d'installation de Xampp Windows. Remplacez simplement C:\PHP par C:\Moodle\server\php et pour redémarrer votre Moodle avec un stop-start normal.

Modifier le fichier de configuration d'apache

Instructions d'Ubuntu Linux

Vous devrez peut-être aussi éditer le fichier config.php dans le répertoire moodle :

  • Tapez "gksudo nautilus" pour obtenir les permissions racine
  • Naviguer vers /etc/moodle
  • Ouvrir apache.conf
  • Aller à la section "<IfModule mod_php5.c>".
  • Changer "php_value upload_max_filesize = 2M" à une valeur supérieure
  • Changer "php_value post_max_size = 2M" à une valeur supérieure
  • Aller à la section "<IfModule mod_php4.c>".
  • Changer "php_value upload_max_filesize = 2M" à une valeur supérieure
  • Changer "php_value post_max_size = 2M" à une valeur supérieure
  • Enregistrer le fichier
  • Tapez sudo /etc/init.d/apache2 restart

Modifier le fichier .htaccess

Les instructions suivantes ne fonctionneront que sur un serveur web Apache, et le serveur Apache doit aussi avoir des Overrides autorisés. Traditionnellement, vous ne pouviez utiliser les fichiers .htaccess que lorsque PHP était exécuté comme un module d'Apache, mais avec Apache 2.2, cela ne semble plus être le cas. Vous pouvez maintenant utiliser le fichier .htaccess dans les formulaires module ou cgi. De plus, autoriser l'utilisation de fichiers .htaccess causera une perte de performance sur le serveur, ce qui n'est pas souhaitable non plus, alors vérifiez avec votre hôte.

Le fichier .htaccess est un fichier de configuration distribué, c'est-à-dire qu'il peut être utilisé par dossier pour configurer le dossier et les sous-dossiers de chaque utilisateur. Vous ne pouvez pas modifier la directive "AllowOverrides" dans le fichier de configuration Apache avec un fichier .htaccess, seul l'hôte peut le définir manuellement. Habituellement, l'hôte placera un fichier .htaccess dans la racine de votre site s'il vous permet de modifier les paramètres du serveur. Vous pouvez l'éditer de la même manière que ci-dessous, et les paramètres que vous avez définis fonctionneront. Vous pouvez également créer votre propre fichier .htaccess dans votre éditeur de texte. Il peut aussi s'appeler quelque chose d'autre, comme .config. Si vous avez un fichier qui commence par ., vous voudrez peut-être l'ouvrir dans votre éditeur de texte, juste par curiosité.

Créez un fichier appelé .htaccess dans le répertoire principal de Moodle (où se trouve'index.php' et non le répertoire "moodledata") qui contient les informations suivantes :

php_value upload_max_filesize 20971520
php_value post_max_size 2097151520
php_value max_execution_time 600

20971520 est la valeur entière pour 20Mb. Vous pouvez utiliser le site suivant pour convertir MegaBytes en Bytes.

Pour une description plus complète de la façon d'éditer le fichier.htacess, regardez cette page,Apache Tutorial : .htaccess files.

Serveur hébergé

Les choses peuvent être un peu différentes avec un serveur hébergé pour la taille des fichiers téléchargés et téléchargés. On vous dira probablement de créer ou de modifier un fichier .htaccess, ou de modifier un fichier php.ini.

Il serait peut-être bon de parler à votre fournisseur de services avant de tenter quoi que ce soit. Ils ont probablement des instructions sur "comment faire" et peuvent avoir leurs propres limites pour la taille du fichier téléchargé. Certains hôtes mesurent la taille du fichier en gigaoctets et d'autres en mégaoctets. Si vous n'êtes pas satisfait de leurs limites, vérifiez votre contrat et songez à changer de fournisseur pour un fournisseur qui a une limite et un prix que vous aimez.

.htaccess avec serveur hébergé

Le seul but d'un fichier .htaccess est de remplacer les limitations actuelles du serveur et du fichier php.ini. Votre serveur hébergé devrait vous informer de l'endroit où ce fichier doit être placé dans votre Moodle, mais généralement dans la racine est suffisant. Ils ont peut-être déjà un fichier standard que vous pouvez utiliser, si c'est le cas, utilisez-le, mais peut-être pas.

Dans le fichier.htaccess, ajoutez les lignes :

 php_value upload_max_filesize 128M
 php_value post_max_size 128M
 

Cela limitera les téléchargements à 128 Mo, mais vous pouvez le faire à n'importe quelle taille convenue avec votre fournisseur. Le libellé peut varier légèrement, selon les exigences du serveur.

php.ini avec serveur hébergé

Certains serveurs ne vous permettront pas de changer le fichier moodle root.htaccess et vous diront d'utiliser un fichier php.ini pour les directives php. Vous pouvez utiliser ici l'instruction située dans la section ci-dessus appelée Modifier le fichier php.ini.

Trouvez le fichier php.ini dans votre sous-dossier moodle sur votre serveur hébergé. Vous voudrez peut-être copier le fichier en tant que sauvegarde au cas où. Editez php.ini, trouvez "upload_max_filesize" et post_max_size dans le code. Après le = modifier le numéro. Ici, la taille maximale du fichier est de 20 mégaoctets.

upload_max_filesize = 20M
taille_max_poteau = 20M
Toujours pas changé ? Certains hôtes utilisant cpanel ont un programme de configuration php sous services/logiciels. Utilisez l'option "Single php.ini" et assurez-vous de noter l'emplacement du fichier php.ini à modifier. Cela change le fichier .htaccess dans la même zone et donc la limite du serveur pour tous les programmes utilisant php.
Toujours pas changé ? NGINX les administrateurs système doivent également ajouter client_max_body_size XXXm ; dans la section "http" de leur fichier de configuration principal nginx. (voir plus d'infos) si vous avez SSL, cela vous demandera de définir ce qui précède pour le SSL serveur etemplacement aussi.

Voir aussi