Guide d'Hébergement Mutualisé (cPanel, Plesk, DirectAdmin)
LeadHub est conçu dès le départ pour fonctionner sur un hébergement mutualisé. Vous n'avez pas besoin d'un VPS, d'un serveur dédié, d'un accès SSH ou de connaissances en ligne de commande. Si vous savez télécharger un fichier et remplir un formulaire web, vous pouvez installer et exécuter LeadHub.
Ce guide couvre tout ce qui est spécifique aux environnements d'hébergement mutualisé.
LeadHub sur Hébergement Mutualisé — Ce Qu'il Faut Savoir
Ce dont vous n'avez absolument PAS besoin
- Pas de SSH / terminal / ligne de commande — jamais
- Pas de commandes artisan — LeadHub ne nécessite jamais de taper des commandes
- Pas de Composer — toutes les dépendances PHP sont pré-installées dans le dossier
vendor/ - Pas de Node.js ou npm — tout le CSS et JavaScript est pré-compilé
- Pas de Redis — LeadHub utilise les sessions et le cache basés sur fichiers par défaut
- Pas de Supervisor — le fichier
cron.phpremplace tout le traitement en arrière-plan - Pas d'accès root — les permissions utilisateur standard suffisent
Ce dont vous AVEZ besoin
- PHP 8.3 ou supérieur (sélectionnable dans cPanel/Plesk/DirectAdmin)
- Une base de données MySQL (tous les hébergeurs mutualisés la fournissent)
- La possibilité d'ajouter un cron job
- Environ 500 Mo d'espace disque libre
- Apache avec mod_rewrite activé (par défaut sur pratiquement tous les hébergeurs)
Choisir Comment Installer — Option A ou Option B
- Option A — Domaine Addon (Recommandé) : LeadHub obtient son propre domaine ou sous-domaine dédié (ex.
leads.votredomaine.com). C'est la configuration la plus propre. - Option B — Installation à plat dans public_html : Vous installez LeadHub directement dans votre dossier
public_html/. Fonctionne mais nécessite quelques étapes supplémentaires.
Option A — Domaine Addon (Recommandé)
Étape 1 : Créer un Domaine Addon ou Sous-domaine
Dans cPanel :
- Connectez-vous à cPanel.
- Cliquez sur Addon Domains.
- Remplissez :
- New Domain Name : ex.
leads.votredomaine.com - Document Root : changez-le en
public_html/leadhub/public
- New Domain Name : ex.
- Cliquez sur Add Domain.
Pourquoi pointer vers
public/? Les fichiers applicatifs de LeadHub (app/, config/, storage/, vendor/) sont conçus pour vivre au-dessus de la racine web. Seul le dossierpublic/doit être accessible depuis un navigateur.
Dans Plesk : Ajoutez un domaine/sous-domaine et définissez la racine web vers leadhub/public.
Dans DirectAdmin : Ajoutez un domaine et définissez le document root vers leadhub/public.
Étape 2 : Téléchargez les Fichiers LeadHub
Structure du serveur :
public_html/
leadhub/ ← tous les fichiers LeadHub ici
app/
bootstrap/
config/
database/
public/ ← votre addon domain pointe ici
resources/
routes/
storage/
vendor/
cron.php
...etc
Étape 3 : Créez une Base de Données MySQL
Dans cPanel → MySQL Databases : créez une base, un utilisateur, et accordez tous les privilèges.
Étape 4 : Définissez les Permissions
storage→ 755 (récursif)bootstrap/cache→ 755
Étape 5 : Lancez l'Assistant d'Installation
Visitez https://leads.votredomaine.com/install et suivez les cinq étapes.
Option B — Installation à Plat dans public_html/
Déplacez tout de public_html/leadhub/public/ vers public_html/, ainsi que toutes les autres dossiers LeadHub. Le fichier index.php détecte automatiquement cette disposition.
public_html/
index.php ← depuis leadhub/public/
.htaccess ← depuis leadhub/public/
app/ ← depuis leadhub/
storage/ ← depuis leadhub/
vendor/ ← depuis leadhub/
cron.php ← depuis leadhub/
...etc
Créez la base de données, définissez les permissions et visitez https://votredomaine.com/install.
Configurer le Cron Job — CRITIQUE
C'est l'étape la plus importante après l'installation. Sans le cron job, rien ne fonctionne en temps réel.
Dans cPanel
-
Section Advanced → Cron Jobs.
-
Tous les champs de temps à
*(chaque minute). -
Commande :
php /home/votreutilisateur/public_html/leadhub/cron.php >> /dev/null 2>&1
Dans Plesk
php /var/www/vhosts/votredomaine.com/leadhub/cron.php >> /dev/null 2>&1
Dans DirectAdmin
php /home/votreutilisateur/domains/votredomaine.com/leadhub/cron.php >> /dev/null 2>&1
Trouver le bon chemin PHP
Chemins courants : /usr/local/bin/php, /usr/bin/php, /opt/cpanel/ea-php83/root/usr/bin/php
Alternative : Cron basé sur le web
Ajoutez CRON_SECRET=VotreSecretAleatoire au fichier .env et configurez un cron URL :
https://votredomaine.com/cron.php?token=VotreSecretAleatoire
Référence des Permissions
| Dossier / Fichier | Permission | Raison |
|---|---|---|
storage/ (et sous-dossiers) | 755 | Sessions, logs, cache, fichiers téléchargés |
bootstrap/cache/ | 755 | Configuration compilée |
public/ | 755 | Le serveur web lit les fichiers ici |
| Fichiers PHP | 644 | Lisibles par le serveur web |
.env | 640 ou 644 | Sensible |
Sélectionner la Bonne Version PHP
cPanel : Software → MultiPHP Manager → PHP 8.3 → Apply. Plesk : Websites & Domains → PHP Settings → PHP 8.3 → OK. DirectAdmin : Domain Setup → PHP Version → 8.3.
Dépannage
| Problème | Cause probable | Solution |
|---|---|---|
| Page blanche | Mauvaise version PHP | Passez à PHP 8.3 |
| Erreur 404 | Fichiers mal placés ou mod_rewrite inactif | Vérifiez les emplacements et .htaccess |
| Erreur 403 | Mauvaises permissions | Mettez storage/ et public/ à 755 |
| /install inaccessible | Problème de chemin (installation à plat) | index.php doit être directement dans public_html/ |
| Cron job ne fonctionne pas | Mauvais chemin | Vérifiez le chemin complet vers PHP et cron.php |
| Automatisations ne se déclenchent pas | Cron non configuré | Vérifiez le cron job |
| Uploads échouent | storage/app/public/ non accessible en écriture | Mettez storage/ à 755 récursivement |
| Emails non envoyés | Email non configuré | Paramètres → Email, configurez SMTP |
| Connexion base de données impossible | Mauvais identifiants | Vérifiez nom, utilisateur et mot de passe |
| Écran blanc après connexion | Problème de session | Vérifiez storage/framework/sessions/ |
| Installateur dit déjà installé | installed.lock existe | Supprimez-le de storage/ |
| Addon domain affiche le site parent | Ne pointe pas vers public/ | Modifiez le document root |