Moodle 5.2 peut-il fonctionner sur hébergement mutualisé ?
10 août 2026 · 7 min de lecture
La réponse honnête
Moodle 5.2 peut tourner sur un hébergement mutualisé seulement si l’hôte donne assez de contrôle sur la racine du document, la version PHP, la base de données, les règles de routage, Composer, cron et la sécurité de moodledata. Beaucoup d’offres mutualisées échouent sur au moins un de ces points.
La demande sur le forum Moodle.org est claire : « Shared Hosting problem [resolved] » compte 77 réponses, avec d’autres discussions sur GoDaddy, Hostinger, cPanel, les sous-dossiers, les racines de document et le routage. Moodle 5.x a changé ce que « téléverser dans public_html » veut dire.
Les symptômes sont concrets : /admin/index.php renvoie 404, Moodle dit que le dossier racine ne doit pas être public, ou config.php signale que $CFG->wwwroot ne doit pas finir par /public. Le dossier public doit être publié, mais /public ne doit pas apparaître dans l’URL visible.
Pourquoi Moodle 5.x est plus exigeant
Moodle 5.1 a introduit le dossier public. Le guide de mise à niveau 5.2 indique que le serveur web doit servir Moodle depuis public, tandis que les fichiers sensibles restent hors de la racine web.
Sur VPS :
DocumentRoot /var/www/moodle/publicSur mutualisé, le domaine principal est souvent verrouillé sur :
public_htmlCe décalage crée le problème. Si l’hôte ne peut pas pointer le domaine vers moodle/public, il faut utiliser sous-domaine, lien symbolique, alias ou réécriture.
La checklist hébergement
| Exigence | Pourquoi |
|---|---|
Racine du domaine réglable vers moodle/public | Moodle 5.x expose seulement public |
| Liens symboliques autorisés | Utile si public_html est verrouillé |
| PHP 8.3 ou 8.4 web et CLI | Moodle 5.2 exige PHP 8.3+ |
| Extensions PHP requises | sodium, intl, mbstring, soap, etc. |
| Base supportée | MariaDB 10.11, MySQL 8.4, PostgreSQL 16 ou SQL Server supporté |
| Composer avec le bon PHP | Le dossier vendor peut être requis |
.htaccess ou règles de réécriture | Nécessaire si FallbackResource est indisponible |
| Cron fiable | Moodle dépend des tâches planifiées |
moodledata hors web | Sinon risque de sécurité |
| Accès aux logs | Sans logs, chaque erreur devient devinette |
Si l’hôte ne répond pas clairement, prévoyez du temps perdu.
cPanel, Hostinger, GoDaddy et sous-domaines
La solution fréquente sur cPanel est de créer un domaine additionnel ou un sous-domaine dont la racine peut être modifiée :
moodle.example.com -> /home/account/moodle/publicLe dossier parent vit alors ici :
/home/account/moodleet seul public est exposé.
Certains panneaux type Hostinger permettent de choisir le dossier public plus directement. Certaines offres GoDaddy sont plus restrictives. Le nom de marque compte moins que les contrôles exacts de votre plan.
Si la racine ne peut pas changer
| Option | Quand ça marche | Risque |
|---|---|---|
Lien symbolique de public_html vers moodle/public | L’hôte autorise les symlinks | Peut perturber d’autres sites |
| Domaine additionnel ou sous-domaine | Racine personnalisable | URL à planifier |
Réécriture .htaccess | Réécriture suffisamment supportée | Plus fragile qu’une vraie racine |
Ne rendez pas tout le dossier Moodle public. Moodle a déplacé des fichiers hors web pour une raison.
Routeur et Composer en mutualisé
La documentation Configuring the Router couvre FallbackResource, try_files et les règles de réécriture. En mutualisé, vous êtes souvent limité à .htaccess. Placez les règles dans public.
Si le contrôle échoue, consultez Moodle 5.2 : routeur mal configuré.
Pour Composer, Moodle peut demander :
composer install --no-dev --classmap-authoritativeQuestions à poser :
- avez-vous SSH ?
- Composer existe-t-il ?
- utilise-t-il PHP 8.3 ou 8.4 ?
- pouvez-vous téléverser un artefact complet avec
vendor?
Sinon, lisez Moodle Composer vendor directory not found avant de bricoler des uploads partiels.
Mutualisé ou VPS ?
| Besoin | Mutualisé | VPS |
|---|---|---|
| Racine document | Parfois verrouillée | Contrôle total |
| Routage | .htaccess ou limites panneau | Apache/Nginx complet |
| PHP-FPM | Défini par l’hôte | Contrôle total |
| Base | Version imposée | Version contrôlée |
| Composer | Souvent limité | Contrôle total |
| Cron | Limites panneau | Cron système |
| Logs | Partiels | Complets |
Pour des apprenants payants, de la formation conformité ou une école, le contrôle opérationnel vaut souvent un VPS ou un hébergement Moodle managé.
FAQ
Moodle 5.2 peut-il tourner sur cPanel ?
Oui si cPanel permet de pointer un domaine ou sous-domaine vers moodle/public, avec PHP/base supportés, réécriture, cron et moodledata privé.
GoDaddy ou Hostinger ?
Cela dépend du plan. Vérifiez les contrôles réels, pas seulement la marque.
Un lien symbolique vers public est-il sûr ?
Oui s’il pointe seulement vers public. N’exposez pas le dossier parent Moodle.
Dois-je utiliser MoodleCloud ?
Utilisez MoodleCloud ou un hébergement managé si vous voulez Moodle sans administrer le serveur. Utilisez un VPS si vous voulez le contrôle.

Écrit par Choaib Mouhrach
Fondateur et ingénieur logiciel senior
Je conçois et développe des plateformes d’apprentissage sur mesure pour les organisations dont les parcours de formation et de certification sont complexes. Plutôt que d’assembler des plugins et des outils tiers, je crée des systèmes adaptés au fonctionnement réel de chaque activité, afin de réduire la charge administrative et d’améliorer l’expérience des apprenants.
Votre produit d'apprentissage mérite sa propre plateforme.
Si vous voulez offrir une expérience d'apprentissage construite autour de votre produit, de vos apprenants et de vos objectifs, vous êtes au bon endroit. Nous construisons des plateformes qui vous donnent le contrôle et la flexibilité pour grandir sans limites.