Dans ce nouveau chapitre nous allons voir comment héberger notre application Laravel sur un hébergement mutualisé O2Switch en utilisant le protocole FTP. L'hébergeur O2Switch utilise l'interface d'administration CPanel donc vous pouvez aussi suivre sur un hébergeur qui propose des fonctionnalités similaires.
Configuration de PHP
En amont nous allons modifier la configuration PHP du serveur pour mettre une version suffisante pour une application Laravel (dans notre cas la version 8.1). On peut aussi en profiter pour activer des extensions PHP supplémentaires si c'est nécessaire (les extensions cochées par défaut suffisent).
Création d'un compte FTP
Pour déposer les fichiers sur le serveur nous allons utiliser le protocole FTP. Pour cela il faut commencer par créer un compte FTP depuis l'interface CPanel. Pour des raisons de sécurité on fera pointer la racine de ce dossier FTP vers un dossier spécifique qui contiendra le code de notre application. Par conventions je place les sites dans un dossier sites
par exemple.
Création d'une base de données MySQL
O2Switch supporte des bases de données MySQL et PostgreSQL et dans les 2 cas un assistant permet de créer facilement la base et l'utilisateur associé. Vous avez aussi accès depuis CPanel à PHPMyAdmin et PHPPgAdmin pour gérer les données de votre base à distance.
Dépôt des fichiers
Une fois le compte FTP créé on va pouvoir utiliser un client FTP (Filezilla par exemple) pour déposer les fichiers sur le serveur. Pour éviter un transfert trop long on ne déposera pas le dossier vendor
et node_modules
.
Une fois les fichiers déposés on va modifier le fichier d'environnement pour l'adapter à la configuration O2Switch.
APP_NAME=MonSite
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=https://monsite.fr
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database
SESSION_DRIVER=file
SESSION_LIFETIME=120
MAIL_MAILER=sendmail
Pour l'envoi des emails on peut utiliser sendmail
qui permet une configuration simple mais vous pouvez aussi créer un compte email depuis CPanel et utiliser une configuration SMTP.
Vous pouvez aussi modifier le fichier public/.htaccess
pour forcer la redirection vers https
et sans www
.
# Force https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTM_HOST}%{REQUEST_URI} [L,R=301]
# Force no www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Configuration du domaine
Côté Cpanel on va maintenant se rendre dans la partie Domaines configurés pour modifier le dossier racine associé à notre nom de domaine.
/sites/monsite.fr/public
Une fois cette association faite on va activer le certificat SSL afin que le site soit accessible en https
en utilisant l'option Let's encrypt SSL de l'espace d'administration.
Terminal
O2Switch dispose d'un terminal en ligne qui nous permettra de faire les opérations de base pour configurer le projet à distance. On va se rendre dans le dossier du projet et utiliser les commandes artisan pour faire l'initialisation de base.
cd sites/monsite.fr
composer install
php artisan key:generate
php artisan storage:link
php artisan migrate
php artisan cache:clear
Files d'attente
Si vous utilisez les files d'attentes il n'est pas possible de laisser une tâche tourner en fond et il faudra plutôt se reposer sur une tâche récurrente que vous pourrez programmer toutes les minutes.
/usr/local/bin/php /home/XXXXX/sites/monsite.fr/artisan queue:work --stop-when-empty
Conclusion
Et voila ! Votre site et maintenant en ligne !