Introduction
Ce guide détaille une méthode fiable pour déployer une application Laravel sur un hébergement géré par cPanel (mutualisé ou VPS). Il couvre : préparation PHP, téléversement du code, installation des dépendances (Composer), configuration de la base de données, réglage du document root vers public, création d’un Cron pour le scheduler et les vérifications de mise en production. Certaines fonctionnalités (Terminal/SSH, MultiPHP Manager, Composer intégré) dépendent des réglages du serveur et de votre offre.
Prérequis
- Accès à votre compte cPanel. Voir : Comment accéder à cPanel.
- Accès SSH ou au Terminal intégré de cPanel, ou la possibilité d’exécuter Composer localement puis d’uploader le dossier
vendor. Explications : Composer = gestionnaire de dépendances PHP ; Artisan = outil en ligne de commande Laravel (php artisan) ; Cron = tâche planifiée. - Version PHP compatible avec votre version de Laravel. Vérifiez
composer.jsondu projet et, si nécessaire, changez la version avec MultiPHP Manager dans cPanel. (MultiPHP Manager — cPanel Docs). - Une base de données MySQL (ou équivalent supporté) et un utilisateur créés dans cPanel. (MySQL Databases — cPanel Docs).
- Accès au Gestionnaire de fichiers (File Manager) ou FTP/SFTP pour téléverser les fichiers et un espace disque suffisant.
- Composer disponible sur le serveur ou la possibilité de l’exécuter localement (voir l’article de cPanel sur l’installation de Laravel/Composer pour les cas spécifiques). (How to install Laravel on cPanel — cPanel Support).
Résumé rapide (procédure)
- Se connecter à cPanel.
- Vérifier / définir la version PHP (MultiPHP Manager).
- Créer la base de données et l’utilisateur MySQL.
- Téléverser le code (Git / FTP / File Manager).
- Installer les dépendances avec Composer (ou localement puis upload).
- Configurer le fichier
.envet générerAPP_KEY. - Pointer le document root du domaine vers
/chemin/vers/projet/publicou, si impossible, déplacer/adapterpublic. - Définir permissions (storage, bootstrap/cache) et créer le Cron pour le scheduler.
Déploiement détaillé (étapes numérotées)
1) Connexion à cPanel
Ouvrez cPanel avec vos identifiants depuis l’URL fournie par votre hébergeur.
2) Vérifier / définir la version PHP
Laravel requiert une version PHP minimale selon la version utilisée. Dans cPanel, ouvrez MultiPHP Manager et sélectionnez la version PHP pour le domaine concerné.
Si vous n’avez pas la version requise, demandez au support ou migrez vers une offre qui la propose.
3) Créer la base de données MySQL
Dans cPanel, ouvrez MySQL Databases ou le Database Wizard, créez une base et un utilisateur, puis associez l’utilisateur à la base avec les privilèges nécessaires. Notez le nom de la base, l’utilisateur et le mot de passe : ils seront utilisés dans .env.
4) Téléverser le code (Git / FTP / File Manager)
Méthodes courantes :
- Git : si l’outil Git ou SSH est disponible, clonez le dépôt directement sur le serveur.
- FTP/SFTP : téléversez un ZIP, puis extrayez-le via File Manager.
- File Manager : téléversez l’archive et utilisez l’option Extract.
5) Installer les dépendances (Composer)
Si vous avez accès au Terminal/SSH, placez-vous dans le dossier du projet puis exécutez :
composer install --no-dev --optimize-autoloader
Pour créer un projet directement :
composer create-project laravel/laravel nom-du-projet
Conseils si Composer n’est pas disponible sur le serveur :
- Exécutez
composer installsur votre machine locale et téléversez le dossiervendor+ le fichiercomposer.lock. - Vérifiez la version CLI de PHP utilisée par Composer : dans le Terminal,
which phpetphp -v. Sur certains environnements cPanel, utilisez le wrapper EA-PHP (ex./usr/local/bin/ea-php82) pour appeler la bonne version.
6) Configurer .env et générer APP_KEY
Copiez .env.example en .env puis renseignez les paramètres DB (DB_CONNECTION, DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD). Générez la clé d’application :
php artisan key:generate
php artisan migrate --force
Si vous n’avez pas de SSH :
- Générez la clé localement :
php artisan key:generate --showpuis collez la valeur dans.env. - Pour les migrations, exportez la base après migration locale et importez le SQL via phpMyAdmin si vous ne pouvez pas lancer
artisan migratesur le serveur.
7) Document root : pointer vers public
Laravel doit servir depuis le dossier project/public. Deux solutions :
- Modifier le document root du domaine / sous-domaine dans cPanel : Domains → Manage → New Document Root, et indiquer le chemin
/home/username/mon-projet/public. (Requiert que l’option soit disponible pour votre hébergement.) - Si vous ne pouvez pas changer la racine, vous pouvez copier le contenu de
publicdanspublic_htmlet adapter les chemins dansindex.php(moins recommandé pour la sécurité). Dansindex.phpremplacez les chemins relatifs par des chemins absolus vers/home/username/mon-projet:require '/home/username/mon-projet/vendor/autoload.php'; $app = require_once '/home/username/mon-projet/bootstrap/app.php';
8) Permissions et stockage
Donnez les droits d’écriture au dossier storage et à bootstrap/cache. Préférez 0755 ou 0775 selon l’environnement. Évitez 0777. Si vous avez SSH :
chmod -R 775 storage bootstrap/cache
chown -R username:username storage bootstrap/cache
Créez le lien symbolique vers public/storage :
php artisan storage:link
Si pas de Terminal : créez manuellement public/storage et adaptez l’upload des fichiers.
9) Tâches planifiées (scheduler)
Laravel utilise le scheduler d’Artisan : créez une tâche Cron dans cPanel (Cron Jobs) pour l’exécuter chaque minute :
* * * * * /usr/local/bin/ea-php82 /home/username/mon-projet/artisan schedule:run >> /dev/null 2>&1
Remplacez /usr/local/bin/ea-php82 par le chemin réel du binaire PHP (vérifiable par which php en SSH) et adaptez le chemin du projet. Créez la tâche via l’interface Tâche Cron de notre KB pour plus de détails.
10) SSL et mise en production
Installez un certificat SSL via SSL/TLS de cPanel (Let's Encrypt ou autre). Compilez et optimisez les assets pour la production :
composer dump-autoload -o
php artisan config:cache
php artisan route:cache
php artisan view:cache
Limitations fréquentes et solutions
- Pas d’accès SSH / Terminal : exécutez Composer localement et uploadez
vendor; générezAPP_KEYlocalement et importez les migrations via SQL si nécessaire. - MultiPHP Manager ou certaines extensions manquantes : si votre domaine n’affiche pas la version souhaitée, contactez le support ; certaines extensions (ex.
fileinfo,mbstring) sont nécessaires pour Laravel. - Impossible de changer le document root du domaine principal : vous pouvez utiliser un sous-domaine/addon domain ou déplacer le contenu de
publicverspublic_htmlen ajustantindex.php, mais la solution la plus sûre reste la modification du document root. - Quotas / ressources limitées : les hébergements mutualisés imposent des limites (espace disque, mémoire, temps CPU). Pour de grosses applications, préférez un VPS ou un plan adapté.
Dépannage & erreurs courantes
- Erreur 500 : vérifiez
storage/logs/laravel.log(ouvrir via File Manager ou tail en SSH) et les logs Apache. Voir aussi notre guide interne sur l’erreur 500. - SoftException / permissions : messages du type « File ... is writeable by group » ou « Permission denied » → corriger permissions / ownership (éviter 777) ; certains handlers PHP (suPHP) sont stricts sur la propriété des fichiers.
- Composer indique qu’une extension manque (ex. fileinfo) : activez l’extension via PHP Selector / MultiPHP INI Editor si possible, sinon demandez au support.
- Composer invoqué avec le mauvais SAPI : message « Composer should be invoked via the CLI version of PHP not the CGI/FCGI SAPI » → utilisez la version CLI de PHP (ex.
/usr/local/bin/ea-php82 composer install). - Migrations qui échouent : vérifiez les informations de connexion DB dans
.env, testez la connexion depuis phpMyAdmin et exécutezphp artisan migrate --forceen production (ou importez SQL si vous n’avez pas de SSH). - Scheduler / Cron qui ne fonctionne pas : utilisez le chemin complet vers PHP et vers
artisandans la tâche Cron et vérifiez les logs du système ou du Cron.
Ressources internes utiles
- Créer une base de données MySQL dans cPanel
- Créer une tâche Cron dans cPanel
- Modifier les permissions des fichiers et des répertoires
- Activer un certificat SSL gratuit sur cPanel
Si vous préférez que nous prenions en charge le déploiement (vérification PHP, Composer, permissions, document root), ouvrez un ticket depuis votre espace client en précisant le domaine et la méthode de déploiement souhaitée.
Documentation de référence
- How to install Laravel on cPanel — cPanel Support
- MultiPHP Manager for cPanel — cPanel Docs
- MySQL® Databases — cPanel Docs
Documentation consultée le 17 octobre 2026. Les outils peuvent varier selon votre hébergement.