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.json du 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)

  1. Se connecter à cPanel.
  2. Vérifier / définir la version PHP (MultiPHP Manager).
  3. Créer la base de données et l’utilisateur MySQL.
  4. Téléverser le code (Git / FTP / File Manager).
  5. Installer les dépendances avec Composer (ou localement puis upload).
  6. Configurer le fichier .env et générer APP_KEY.
  7. Pointer le document root du domaine vers /chemin/vers/projet/public ou, si impossible, déplacer/adapter public.
  8. 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.

Accès à cPanel depuis l'espace client
Accès à cPanel (exemple de l’entrée vers le panneau).

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é.

Sélection de la version PHP dans MultiPHP Manager de cPanel
Choisir la version PHP adaptée au domaine via MultiPHP Manager.

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.

Créer une base de données MySQL depuis cPanel
Création d’une base de données MySQL dans cPanel.

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.
Gestionnaire de fichiers de cPanel pour téléverser et extraire des archives
Uploader et extraire une archive depuis le Gestionnaire de fichiers.

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 install sur votre machine locale et téléversez le dossier vendor + le fichier composer.lock.
  • Vérifiez la version CLI de PHP utilisée par Composer : dans le Terminal, which php et php -v. Sur certains environnements cPanel, utilisez le wrapper EA-PHP (ex. /usr/local/bin/ea-php82) pour appeler la bonne version.
Terminal intégré de cPanel pour exécuter Composer et Artisan
Terminal cPanel : utile pour lancer Composer et les commandes Artisan.

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 --show puis 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 migrate sur le serveur.

7) Document root : pointer vers public

Laravel doit servir depuis le dossier project/public. Deux solutions :

  1. 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.)
  2. Si vous ne pouvez pas changer la racine, vous pouvez copier le contenu de public dans public_html et adapter les chemins dans index.php (moins recommandé pour la sécurité). Dans index.php remplacez 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';
Choix d'un dossier racine personnalisé lors de la création d'un domaine dans cPanel
Définir un dossier racine personnalisé pour un Addon Domain / Subdomain.

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.

Modifier les permissions de fichier via le Gestionnaire de fichiers cPanel
Modifier les permissions d’un fichier ou d’un dossier depuis File Manager.

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.

Formulaire d'ajout d'une tâche Cron dans cPanel
Ajouter une tâche Cron dans cPanel — indiquer la commande complète et la planification.

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
Accès à SSL/TLS Certificates depuis cPanel
Installer un certificat SSL/TLS depuis cPanel.

Limitations fréquentes et solutions

  • Pas d’accès SSH / Terminal : exécutez Composer localement et uploadez vendor; générez APP_KEY localement 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 public vers public_html en ajustant index.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écutez php artisan migrate --force en 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 artisan dans la tâche Cron et vérifiez les logs du système ou du Cron.

Ressources internes utiles

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.