Vous pouvez crĂ©er une application et la tester en local. Mais ensuite, il va falloir la mettre sur un serveur pour qu'elle soit visible et accessible en ligne. Ce dĂ©ploiement nâest pas une tĂąche aisĂ©e selon votre contexte.
Dans ce tutoriel, nous allons vous montrer ce quâil convient de faire pour simplifier le dĂ©ploiement de votre projet Laravel sur un hĂ©bergement mutualisĂ© sur nos serveurs.
1. Lâenvironnement
†Créer des environnements
Pour la gestion de l'environnement, Laravel utilise un package tiers. Env. Vous trouverez Ă la racine le fichier .env avec ce contenu :
APP_ENV=local APP_KEY= APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=<a href="http://localhost">http://localhost</a> DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null PUSHER_APP_ID= PUSHER_KEY= PUSHER_SECRET=
Ăa se prĂ©sente sous la forme clĂ©/valeur. Par exemple, on peut voir cela en Ćuvre dans config/app.php :
|
Le helper .env permet de lire la valeur de APP_DEBUG dans le fichier .env et dâaffecter la valeur de la clĂ© debug de la configuration de lâapplication.
On trouve aussi par exemple le réglage de MySQL dans config/database.php :
|
Remarquez que le helper accepte une valeur par défaut comme deuxiÚme paramÚtre.
Que fait ce helper ?
Il stocke les valeurs dans la super globale dâenvironnement .env du serveur.
âLe cas le plus classique sera dâavoir un environnement local de dĂ©veloppement et un autre de dĂ©ploiement.
Il faut juste éviter de mélanger les pinceaux, en particulier éviter d'enlever le fichier .gitignore de la racine qui prévoit de ne pas envoyer le fichier .env pouvant contenir des données sensibles.
La variable APP_ENV dans le fichier .env est justement destinĂ©e Ă connaĂźtre lâenvironnement actuel :
APP_ENV=local
Lorsque vous crĂ©ez une application, faites une copie du fichier dâenvironnement pour rĂ©gler vos variables en situation de production. Pour Ă©viter des confusions, nommez le de maniĂšre explicite :
Dans ce fichier, vous fixez toutes les valeurs nĂ©cessaires. Exemple đđŸ
APP_ENV=production APP_DEBUG=false APP_KEY=5avz0M3IGPu4GFxBBLPhQs00MNJREzoL ...
Il suffit ensuite dâenvoyer ce fichier sur le serveur et de le renommer ensuite.
2. Le déploiement
†Le serveur
Laravel nâa pas besoin d'Ă©normes ressources. Mais il faut tout de mĂȘme :
-
PHP >= 5.6.4
-
Extension PHP PDO
-
Extension PHP OpenSSL
-
Extension PHP Mbstring
-
Extension PHP Tokenizer
Dâautre part, les dossiers storage et bootstrap/cache doivent avoir les droits dâĂ©criture sur le serveur.
Selon la mĂ©thode dâinstallation que vous aurez choisie, vĂ©rifiez que vous avez bien une clĂ© de cryptage dans votre environnement.
†Lâenvoi des fichiers de lâapplication
Pour UpLoader vos fichiers sur le serveur, vous allez devoir utiliser le service FTP présent dans votre cpanel.
Suivez ce tutoriel pour savoir comment configurer vos comptes FTP sur votre plan d'hébergement : Mise en ligne par FTP
Pour utiliser votre service FTP suivez également ce tutoriel : Télécharger le PDF !
†Le cacheâ
Puisque vous ĂȘtes sur un plan d'hĂ©bergement mutualisĂ©, pensez Ă vider votre cache avant d'uploader vos fichiers sur le serveur.
†La base de données
Vous devez exporter votre base sur le serveur MySQL local. Ensuite, avec le fichier SQL généré, créer votre base sur le serveur MySQL distant.
AprÚs ces étapes, votre application devrait fonctionner !
†Installation sur serveur mutualisé
Le seul dossier de Laravel accessible est celui nommĂ© "public". Les autres ne doivent pas lâĂȘtre.
En général, on fait pointer son domaine (ou sous-domaine) sur le dossier public et le tour est joué.
Mais avec un pack "hĂ©bergement web mutualisĂ©" vous ne disposez que dâun dossier public_html dans lequel on inclut tout.
Laravel nâa pas Ă©tĂ© conçu pour ça, mais on peut quand mĂȘme le faire fonctionner ainsi.
Voici la procédure :
Commencez par installer normalement Laravel comme expliqué ci-dessus. Vous devez avoir cette architecture :
On va copier tout ce qui se trouve Ă la racine du dossier public et le coller Ă la racine du dossier public_html et ensuite supprimer le dossier public. Vous devez avoir maintenant cette situation :
Evidemment maintenant plus rien ne fonctionne !
Ouvrez le fichier index.php et trouvez cette ligne :
require __DIR__. '/../bootstrap/autoload.php' ; |
Remplacez-la par celle-ci :
require __DIR__. '/bootstrap/autoload.php' ; |
Dans le mĂȘme fichier, trouvez cette ligne :
$app = require_once __DIR__. '/../bootstrap/app.php' ; |
Remplacez-la par celle-ci :
$app = require_once __DIR__. '/bootstrap/app.php' ; |
Ces modifications sont nécessaires à cause du déplacement des fichiers et de la modification des emplacements relatifs.
La page dâaccueil de Laravel va maintenant sâafficher correctement.
Le souci, c'est que désormais tout devient accessible et il faut prendre des précautions !
Par exemple en prĂ©voyant dans les dossiers que vous voulez inaccessibles (app, bootstrapâŠ) un .htaccess avec :
Deny from all
Les seuls fichiers accessibles sont ceux présents à la racine et il y a encore des fichiers sensibles tels que votre fichier de configuration.
Il faut donc aussi prévoir quelque chose au niveau du .htaccess à ce niveau.
Commentaires
0Â commentaire
Vous devez vous connecter pour laisser un commentaire.