Le présent wiki a été migré vers wiki.archlinux.org.
Ce Wiki a été archivé. Toute contribution doit donc désormais se faire là-bas. Cette page de Wiki possède donc potentiellement des informations qui ne sont plus à jour !
Laravel : Différence entre versions
m (plus de pages sans catégorie) |
(réglages complémentaires) |
||
Ligne 80 : | Ligne 80 : | ||
drwxrwxr-x 5 $USER http 4096 août 19 22:24 storage | drwxrwxr-x 5 $USER http 4096 août 19 22:24 storage | ||
Relancez l'application dans le navigateur et vous devriez pouvoir accéder à votre application normalement. | Relancez l'application dans le navigateur et vous devriez pouvoir accéder à votre application normalement. | ||
+ | |||
+ | === Réglages complémentaires === | ||
+ | Il est recommandé de vérifier les paramètres du fichier /etc/httpd/conf/httpd.conf et notamment : | ||
+ | AllowOverride All | ||
+ | Pour éviter que seule la page d'index s'affiche tandis que les routes retournent une erreur 404, il convient de décommenter, sur le même fichier la ligne : | ||
+ | LoadModule rewrite_module modules/mod_rewrite.so |
Version actuelle datée du 16 mai 2021 à 15:11
Sommaire
Introduction
Cette page de documentation traite de l'installation du framework PHP Laravel sous Archlinux.
Avant-propos
Serveur Web
Il est tout à fait possible de développer une application Laravel sans serveur Web en utilisant un sevreur minimal PHP via la commande php artisan serve. Néanmoins, il est fort probable que votre application soit hébergée sur un serveur Apache ou NGINX en production. Il est donc intéressant d'avoir la même technologie en développement. Laravel se comportera de la même façon, que vous utilisiez un serveur minimal ou que vous hebergiez votre application sur un serveur Web. Certaines spécificités liées aux permissions devront néanmoins être vérifiées, notamment les permissions du dossier contenant les logs de l'application sur votre environnement de développement.
Serveur de base de données
Laravel est un framework versatile et vous permet de travailler avec ou sans base de données (suivant l'application). Laravel réagira de la même façon et la technologie importe peu, que vous utilisiez SQLite en développement ou MSSQL en production par exemple utilisant les fichiers de migrations. Néanmoins, il faudra configurer une première fois l'application pour pouvoir utiliser les bons drivers. Consultez la documentation Laravel pour en savoir plus.
Pré-requis
Laravel est un framework basé sur le langage de programmation PHP. Il est donc nécessaire d'installer ce dernier :
# pacman -S php
Laravel a besoin d'une version de PHP récente. Fort heureusement, sous Archlinux, les paquets sont souvent à jour et suivent de près les dernières versions officielles. Néanmoins, on peut s'assurer de la version actuellement installée en tapant la commande suivante :
$ php -v
Ce qui devrait donner quelque chose comme ceci :
PHP 7.2.9 (cli) (built: Aug 17 2018 16:21:18) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.9, Copyright (c) 1999-2018, by Zend Technologies
Si votre version est inférieur aux pré-requis Laravel, il vous suffit de mettre à jour les paquets de votre système en tapant la commande suivante :
# pacman -Syu
Une fois la mise à jour effectuée, redémarrez le système afin d'être sûr que les nouvelles configurations soient prisent en compte. Il faudra ensuite installer Composer pour pour récupérer un template officiel sur lequel travailler. Tapez la commande suivante :
# pacman -S composer
Ouvrez un nouveau terminal et tapez la commande suivante :
$ composer -V
Ce qui devrait vous donner la version installé sur votre système et vous assurer qu'il soit bien installé :
Composer version 1.7.2 2018-08-16 16:57:12
Installation
Via Composer
Pour pouvoir récupérer un template Laravel sur lequel on va pouvoir travailler, il faut utiliser Composer et récupérer les sources avec la commande suivante :
$ composer create-project --prefer-dist laravel/laravel myApp
Cela créera le dossier myApp contenant toute l'arborescence d'un projet-type Laravel. Remplacez myApp par le nom de votre application.
Via Laravel Installer
Il est possible d'utiliser un installateur dédié permettant de bénéficier d'une syntaxe plus courte pour installer nos applications Laravel. Pour cela, il suffit de taper la commande suivante :
$ composer global require "laravel/installer"
Il faut ensuite ajouter le dossier des binaires Composer au chemin global des binaires du système. Par exemple, pour les utilisateur du shell ZSH :
$ atom ~/.zshrc
Remplacez atom par votre éditeur de texte préféré et .zshrc par le fichier de script lancé par votre shell préféré. Une fois ouvert, ajoutez les lignes suivantes à la fin du fichier :
# Composer Binaries PATH=$PATH:/.config/composer/vendor/bin
Le commentaire n'est là que pour des raisons d'organisation. Une fois cela fait, enregistrez les modifications et testez la bonne installation :
$ laravel -V
Ce qui devrait vous donner quelque chose comme ceci :
Laravel Installer 2.0.1
Vous pouvez désormais installer vos applications avec une simple commande :
$ laravel new myApp
Cela créera le dossier myApp contenant toute l'arborescence d'un projet-type Laravel. Remplacez myApp par le nom de votre application. Naviguez ensuite dans le dossier de votre nouvelle application :
$ cd myApp
Et tapez la commande suivante pour tester la bonne installation du projet :
$ php artisan serve
Ce qui démarrera un serveur minimal PHP. Laissez la console et le programme tourner et rendez-vous à l'addresse http://localhost:8000/ afin de vous assurer que le projet fonctionne bien.
FAQ
The stream or file "storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
Cette erreur signifie que l'utilisateur ayant démarré le serveur Web (ici Apache) n'a pas les droits pour écrire dans les fichiers de logs de votre application. Cette une erreur courante dans les environnements de développement qui sont souvent configurés pour pouvoir lancer le serveur Apache par un utilisateur non-privilégié (pour des raisons de sécurité). Pour pouvoir corriger le problème, il faut d'abord déterminer qui est en charge de démarrer le serveur :
$ ps -aux | grep httpd | tail -n 2 | head -n 1 | cut -d ' ' -f 1
Ce qui donne par exemple :
http
Remplacez dans la suite http par le résultat de cette commande pour votre système. Ensuite, on se rend dans le dossier contenant notre application :
$ cd ~/Sites/blog/
Remplacez ~/Sites/blog/ par le chemin vers votre application Laravel. On ajoute http aux utilisateur ayant les permissions sur notre dossier storage :
# chown -R ${USER}:http storage
On s'assure ensuite que l'on a bien appliqué les changements en tapant la commande :
$ ls -l | grep storage
Ce qui devrait donner quelque chose comme ceci :
drwxr-xr-x 5 $USER http 4096 août 19 22:24 storage
Il faut maintenant donner les droits en écriture pour que l'utilisateur http puisse écrire les logs dans notre dossier :
# chmod -R g+w storage
Et on s'assure de son bon déroulement avec la commande suivante :
$ ls -l | grep storage
Ce qui devrait donner quelque chose comme ceci :
drwxrwxr-x 5 $USER http 4096 août 19 22:24 storage
Relancez l'application dans le navigateur et vous devriez pouvoir accéder à votre application normalement.
Réglages complémentaires
Il est recommandé de vérifier les paramètres du fichier /etc/httpd/conf/httpd.conf et notamment :
AllowOverride All
Pour éviter que seule la page d'index s'affiche tandis que les routes retournent une erreur 404, il convient de décommenter, sur le même fichier la ligne :
LoadModule rewrite_module modules/mod_rewrite.so