Dans ce tutoriel nous allons voir comment déployer notre application Symfony sur un hébergeur qui utilise l'interface CPanel. Dans le cas de cette vidéo nous utiliseront l'hébergement O2Switch.
Préparation de l'environnement
La première étape est de préparer le serveur pour accueillir notre site :
- On ajoute notre IP à la liste des IPs autorisées à se connecter en SSH au serveur via Autorisation SSH.
- On commence par Ajouter un domaine que l'on fait pointer vers un dossier spécifique (on pensera à ponter vers le dossier public). Par exemple :
~/sites/mondomaine.tld/public - On génère un certificat SSL, depuis "Lets Encrypt™ SSL".
- On crée une base de données avec son utilisateur associé (vous pouvez utiliser l'option "assistant" pour faire cette opération en une fois).
- Sur "Sélectionner une version de PHP" on activera la version 8.2 nécessaire au fonctionnement de Symfony.
Préparation du site
Pour que l'application Symfony il faut faire pointer les liens vers le fichier index.php du dossier public. Les hébergeurs utilisent souvent Apache et il faudra ajouter un fichier de configuration .htaccess. Cela peut se faire facilement à l'aide de symfony/apache-pack.
Maintenant que notre serveur est configuré, on va devoir copier le code source de notre site sur le serveur. Dans note cas nous allons cloner notre projet depuis le dépôt distant git.
Ensuite, on va modifier la configuration du site en créant un fichier .env.local. A adapter en fonction de votre environnement.
Enfin, on installe les dépendances, et on lance les migrations pour mettre à jour notre base de données.
Et voila ! Le site devrait maintenant être visible et fonctionnel.
Automatiser avec Make
Pour automatiser le processus de déploiement d'une nouvelle version il est possible d'utiliser un fichier Makefile.
Si vous souhaitez déployer une mise à jour il vous suffira de taper la commande make deploy.
Messenger
Malheureusement, il n'est pas possible d'utiliser un superviseur pour faire fonctionner Messenger. Une solution alternative est d'utiliser une tâche récurrente qui traitera les tâches toutes les 5 minutes.
Les informations sont disponibles sur la FAQ