« Héberger une application Laravel sur un serveur mutualisé (Hostinger, o2switch, OVH) : guide complet avec base de données, .env et droits d’écriture »
Partie 1/5 : Introduction et prérequis (Théorique)
Ce plan est conçu pour un public débutant à intermédiaire, en clarifiant d’abord les notions fondamentales, puis en guidant pas à pas vers une mise en production fonctionnelle, tout en tenant compte des limites réelles des hébergements mutualisés.
1. Introduction
Problématique : Laravel est un framework moderne, mais les serveurs mutualisés sont souvent conçus pour des sites simples (HTML, WordPress).
Objectif de l’article : expliquer comment adapter et déployer une application Laravel sur un hébergement mutualisé sans accès SSH ni droits root.
À la fin, vous saurez :
Vérifier la compatibilité de votre hébergeur.
Préparer votre projet localement.
Structurer les dossiers correctement.
Configurer la base de données et le fichier
.env.Résoudre les erreurs courantes (500, blanc, droits).
2. Définitions et notions de base
2.1. Qu’est-ce que Laravel ?
Framework PHP open source, moderne, basé sur le pattern MVC.
Nécessite des fonctionnalités avancées : gestion des dépendances (Composer), CLI (Artisan), cache, queues, etc.
2.2. Qu’est-ce qu’un serveur mutualisé ?
Environnement d’hébergement où plusieurs sites partagent les mêmes ressources (CPU, mémoire, IP).
Accès limité : pas de terminal SSH, pas de personnalisation du serveur, interface web (cPanel, Plesk, etc.) pour la gestion.
Racine du site souvent fixe (ex.
public_html/ouwww/).
2.3. Pourquoi Laravel est-il difficile à héberger en mutualisé ?
Structure de dossiers sensible : le dossier racine ne doit pas être exposé (risque de fuite de
.env,composer.json, etc.).Dépendances gérées par Composer (non disponibles par défaut sur mutualisé).
Besoin de pointer le domaine vers le sous-dossier
/public.Absence de ligne de commande pour exécuter
php artisan.
3. Prérequis techniques
3.1. Conditions minimales requises sur l’hébergement
Pour que Laravel fonctionne, votre offre mutualisée doit impérativement proposer :
PHP 8.0 ou supérieur (Laravel 10+ exige PHP 8.1+, Laravel 11+ exige PHP 8.2+)
Extensions PHP activées :
mbstringopensslpdo_mysqltokenizerxmlctypejsoncurlfileinfo
Possibilité de changer la racine du site (document root) ou au moins de copier le contenu de
/publicà la racine.Accès FTP ou gestionnaire de fichiers web.
Base de données MySQL (ou MariaDB).
3.2. Compatibilité des hébergeurs populaires (2025)
o2switch | ✅ Oui | ✅ Oui (interface simple) | ✅ Oui | Oui |
Hostinger | ✅ Oui (offre Business/Cloud) | ✅ Oui (via hPanel) | ✅ Oui | Oui (avec bonne offre) |
OVH | ⚠ Oui (mais configuration manuelle) | ❌ Non sur offres basiques | ✅ Oui | Non recommandé pour débutants |
⚠ Évitez les offres "Starter", "Perso" ou "Mini" : elles ne permettent généralement pas de pointer le domaine sur un sous-dossier.
4. Préparer votre application Laravel en local
4.1. Nettoyage du projet
Supprimer les dossiers inutiles en production :
tests/,node_modules/(si assets déjà compilés),.git/,.env.example.Désactiver le mode debug
composer install --optimize-autoloader --no-dev
npm run build # ou npm run prod5. Structurer les dossiers sur un hébergement Hostinger
5.1. Pourquoi ne pas déposer tout Laravel dans public_html ?
Le dossier public_html est accessible publiquement. Y laisser les dossiers app/, config/, .env ou vendor/ expose votre code source et vos secrets.
5.2. Architecture recommandée sur Hostinger
Sur Hostinger, la racine web est public_html. Voici la structure à adopter :
/home/votrecompte/ ← racine du compte (non accessible en HTTP)
├── laravel_app/ ← dossier privé contenant tout Laravel (sauf public/)
└── public_html/ ← racine web (ce que voit le visiteur)
├── index.php ← copié depuis laravel_app/public/
├── .htaccess ← copié depuis laravel_app/public/
└── assets/ ← autres fichiers publics (CSS, JS, images)Étapes :
Créez un dossier
laravel_appen dehors depublic_html(dans le répertoire parent, via le gestionnaire de fichiers de hPanel).Téléversez tout votre projet Laravel (sauf le dossier
public/) danslaravel_app/.Copiez uniquement le contenu du dossier
public/(fichiersindex.php,.htaccess, dossierscss/,js/, etc.) danspublic_html/.
5.3. Modifier public_html/index.php
Ouvrez public_html/index.php et remplacez les chemins par :
require __DIR__.'/../laravel_app/vendor/autoload.php';
$app = require_once __DIR__.'/../laravel_app/bootstrap/app.php';6. Configurer la base de données sur Hostinger
6.1. Créer la base MySQL via hPanel
Connectez-vous à hPanel .
Allez dans Base de données → MySQL.
Cliquez sur Créer une base de données :
Nom de la base :
votredomaine_laravelNom d’utilisateur :
laravel_userMot de passe : générez un mot de passe fort
Cliquez sur Créer.
Hostinger crée automatiquement l’utilisateur et lui accorde tous les droits sur la base.
6.2. Créer le fichier .env
Dans le dossier
laravel_app/, créez un fichier nommé.env.Collez-y la configuration suivante (adaptez les valeurs) :
APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:votre_clé_générée_en_local
APP_DEBUG=false
APP_URL=https://votredomaine.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=votredomaine_laravel
DB_USERNAME=laravel_user
DB_PASSWORD=mot_de_passe_fortSécurité : testez dans votre navigateur :
https://votredomaine.com/../laravel_app/.env→ doit renvoyer une erreur 403 ou 404.
7. Gérer les migrations sans SSH sur Hostinger
7.1. Problème
Hostinger ne permet pas l’accès SSH sur les offres mutualisées standard → impossible d’exécuter php artisan migrate.
7.2. Solution recommandée : import via phpMyAdmin
En local, exportez votre base de données (structure + données) via phpMyAdmin ou
mysqldump.Dans hPanel → Base de données → phpMyAdmin, sélectionnez votre base (
votredomaine_laravel).Cliquez sur Importer et chargez le fichier SQL.
Vérifiez que les tables sont bien créées.
8. Gérer les droits d’écriture sur Hostinger
8.1. Dossiers à rendre accessibles en écriture
laravel_app/storage/laravel_app/bootstrap/cache/
8.2. Modifier les permissions via hPanel
Dans hPanel → Fichiers → Gestionnaire de fichiers, naviguez jusqu’à
laravel_app/.Cliquez droit sur
storage→ Changer les permissions → cochez Lecture/Écriture/Exécution pour Propriétaire et Groupe (755 ou 775).Faites de même pour
bootstrap/cache/.
Si vous voyez une erreur de cache ou de log, essayez temporairement 777, puis revenez à 755 après.
9. Problèmes courants sur Hostinger et solutions
Erreur 500 | Mauvais | Vérifiez |
Page blanche | Erreur PHP masquée | Ajoutez temporairement en haut de |
404 sur les routes (sauf /) | Fichier | Vérifiez que |
Erreur de base de données | Hôte incorrect | Utilisez |
10. Limites de Laravel sur Hostinger (mutualisé)
10.1. Fonctionnalités indisponibles
Tâches planifiées (
schedule:run)Queues (file d’attente) en temps réel
Déploiement Git automatique (sauf sur offres Cloud)
10.2. Recommandations
Sauvegardez manuellement la base via phpMyAdmin.
Supprimez tout fichier de développement (
tests/,.git/,node_modules/).Passez à Hostinger Cloud Startup ou un VPS dès que l’application devient critique.
11. Conclusion
Avec cette configuration, votre application Laravel fonctionne sécurisée et opérationnelle sur un hébergement mutualisé Hostinger. Bien que limité, ce montage convient à des projets légers, des prototypes ou des sites vitrines dynamiques. Pour aller plus loin, envisagez une infrastructure dédiée.






