Laravel

De ArchwikiFR
Révision datée du 19 août 2018 à 22:14 par Aminnairi (discussion | contributions) (Page créée avec « ==Introduction== Cette page de documentation traite de l'installation du framework PHP [https://laravel.com/ Laravel] sous Archlinux. ==Avant-propos== ===Serveur Web===... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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.