> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.hodi.host/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Comment déployer un site Laravel ou Symfony ?

Deux méthodes, selon que vous souhaitez déployer depuis un dépôt Git ou installer l'application à la main sur votre hébergement.

## Méthode recommandée : déployer avec Hodifly

[Hodifly](https://help.hodi.host/fr/article/quest-ce-que-hodifly-1x4tzo6/) déploie votre application Laravel ou Symfony directement depuis GitHub ou GitLab, à chaque `git push`. Il n'y a ni SSH, ni lien symbolique, ni `composer install` à lancer : tout se fait sur le serveur, à chaque déploiement.

Hodifly fonctionne **sur tous les hébergements web**, y compris les moins chers : une application PHP est servie par le serveur web lui-même, elle n'a donc pas besoin de l'option « applications » nécessaire à Node, Python ou Ruby.

### Ce que Hodifly fait pour vous

* **La racine du site** pointe automatiquement vers le dossier du contrôleur frontal de la version déployée : `public/` pour Laravel et Symfony. Le reste de l'application (`.env`, `vendor/`, `app/`, `config/`, `storage/`) n'est jamais accessible en HTTP. C'est exactement le problème que la méthode manuelle ci-dessous résout avec un lien symbolique : ici, il n'y a rien à faire.
* **Composer** est exécuté à chaque déploiement (`install --no-dev --prefer-dist --optimize-autoloader`). Versionnez votre `composer.lock`.
* **Le fichier `.env`** est généré à partir des variables d'environnement du projet. Ne versionnez pas de `.env`. `APP_KEY` (Laravel) et `APP_SECRET` (Symfony) sont générés une fois et conservés hors des versions, pour que les sessions survivent aux déploiements.
* **Les migrations** sont jouées avant la mise en ligne. Une migration en échec laisse la version précédente en place : le site ne casse pas.
* **Les assets front-end** (Vite, Laravel Mix, Webpack Encore) sont construits automatiquement si votre `package.json` contient un script `build`.
* **Les tâches planifiées** Laravel sont câblées toutes seules dans le crontab du compte.
* **Le retour arrière** est instantané depuis cPanel, sans reconstruction.

### Mise en route

1. Ouvrez **cPanel > Hodifly** et connectez votre dépôt GitHub ou GitLab.
2. Choisissez la branche et le domaine (ou le sous-dossier) à déployer.
3. Laissez la commande de build vide : Composer et les assets sont gérés automatiquement.
4. Renseignez vos variables d'environnement (base de données, clés d'API), puis déployez.

Les détails complets (runtimes, monorepos, files d'attente, données persistantes) sont dans [Que puis-je déployer sur Hodifly ?](https://help.hodi.host/fr/article/que-puis-je-deployer-sur-hodifly-1w02yb0/).

||| 💡 Bon à savoir : Hodifly reconnaît aussi Lumen, CodeIgniter 4, Yii 2, CakePHP et Slim, et place la racine du site sur le bon dossier pour chacun (`public/`, `web/` ou `webroot/`).

## Méthode manuelle : installer l'application vous-même

Si vous n'utilisez pas Hodifly et que vous installez l'application à la main, il reste le problème du dossier : votre hébergement sert `public_html`, alors que Laravel et Symfony imposent de servir leur dossier `public`.

Il existe une méthode simple pour pouvoir utiliser Symfony ou Laravel avec votre hébergement :

* [Connectez-vous en SSH](https://help.hodi.host/fr/article/comment-acceder-en-ssh-a-votre-hebergement-1de35jc/) ou allez dans le **Terminal** sur cPanel

* Vérifiez que vous êtes à la racine de votre hébergement :
cd ~
* Renommez le répertoire `public_html` via la commande suivante :
mv public_html public_html_bak
* Créez un lien symbolique entre votre répertoire `public` et `public_html` via la commande suivante (adaptez `/home/monuser/monappli/public` selon votre installation) :
ln -s /home/monuser/monappli/public public_html
* Enfin, pour exécuter `composer`, vous devez spécifier la version de PHP à utiliser [si vous avez changé la version de PHP de votre hébergement](https://help.hodi.host/fr/article/comment-changer-la-version-de-php-de-votre-hebergement-z7208o/), par exemple pour utiliser PHP 8.2 avec `composer` :
ea-php82 /usr/local/bin/composer install
Vous pouvez aussi [créer un alias dans votre shell](https://linuxize.com/post/how-to-create-bash-aliases/) si vous désirez appeler `composer` avec uniquement la commande composer.
**Astuce :** si vous êtes sur une offre où l'accès SSH n'est pas inclus, notre [support technique](https://hodi.host/submitticket.php?step=2&deptid=2) fera la manipulation pour vous. Indiquez-nous simplement le chemin de votre répertoire `public`.