GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Laravel 5.x avec Nginx et PHP-FPM 7.1 sur CentOS 7

Laravel est un framework PHP open source qui suit le modèle de conception MVC (Model-View-Controller). Il a été créé par Taylor Otwell en 2011 dans le but de fournir une alternative avancée au framework CodeIgniter (CI). En 2011, le projet Laravel a publié les versions 1 et 2, cette année la version 5.4 a été publiée avec de nombreuses améliorations telles que la prise en charge de la ligne de commande (CLI) nommée "artisan", la prise en charge intégrée de plusieurs types de bases de données et un routage amélioré.

Dans ce tutoriel, je vais vous montrer comment installer le Laravel Web Framework avec le serveur Web Nginx, PHP-FPM 7.1 et MariaDB sur un système CentOS 7. Je vais vous montrer étape par étape comment installer et configurer Laravel sous la pile LEMP sur le serveur CentOS 7.

Ce tutoriel est également disponible pour Laravel sur Ubuntu.

Prérequis :

  • Serveur CentOS 7.
  • Privilèges racine.

Étape 1 - Installer le référentiel EPEL

EPEL ou Extra Package for Enterprise Linux est un référentiel de packages supplémentaire qui fournit des packages logiciels utiles qui ne sont pas inclus dans le référentiel officiel CentOS. Il peut être installé sur des distributions Linux basées sur RPM comme CentOS et Fedora.

Dans ce didacticiel, nous avons besoin du référentiel EPEL pour l'installation de Nginx car les packages Nginx n'existent pas dans le référentiel CentOS officiel. Installez le référentiel EPEL avec la commande yum ci-dessous.

yum -y install epel-release

Le référentiel EPEL a été installé.

Étape 2 - Installer Nginx

Dans ce tutoriel, nous allons exécuter un Laravel sous la pile LEMP. Nginx est la partie serveur Web de la pile LEMP et peut être installé à partir du référentiel EPEL.

Installez Nginx 1.10 à partir du référentiel EPEL avec yum.

yum -y install nginx

Une fois l'installation terminée, démarrez Nginx et ajoutez-le pour démarrer au démarrage.

systemctl start nginx
systemctl enable nginx

Nginx s'exécute sur le port 80, vérifiez-le avec la commande netstat ci-dessous.

netstat -plntu

Si vous obtenez le résultat "Commande introuvable", installez le package net-tools comme indiqué ci-dessous.

yum -y install net-tools

Étape 3 - Installer et configurer PHP-FPM 7.1

Laravel peut être installé sur un serveur avec la version PHP>=5.6.4. Dans ce didacticiel, nous utiliserons la dernière version de PHP 7.1 prise en charge par Laravel.

PHP 7.1 n'existe pas dans le référentiel de base CentOS, nous devons l'installer à partir d'un référentiel tiers nommé 'webtatic'.

Installez le dépôt webtatic avec cette commande rpm.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Nous pouvons maintenant installer PHP-FPM avec toutes les extensions nécessaires à Laravel avec une seule commande yum.

yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip

PHP 7.1 a été installé sur notre système CentOS 7.

Ensuite, configurez PHP en éditant le fichier de configuration php.ini avec vim.

vim /etc/php.ini

Décommentez la ligne ci-dessous et changez la valeur en 0.

cgi.fix_pathinfo=0

Enregistrez le fichier et quittez l'éditeur.

Modifiez maintenant le fichier PHP-FPM www.conf.

vim /etc/php-fpm.d/www.conf

PHP-FPM s'exécutera sous l'utilisateur et le groupe 'nginx ', changez la valeur des deux lignes ci-dessous en 'nginx '.

user = nginx
group = nginx

Au lieu d'utiliser le port du serveur, PHP-FPM s'exécute sous un fichier de socket. Remplacez la valeur 'listen' par le chemin '/run/php-fpm/php-fpm.sock ' comme indiqué ci-dessous.

listen = /run/php-fpm/php-fpm.sock

Le propriétaire du fichier socket sera l'utilisateur "nginx" et le mode d'autorisation est 660. Décommentez et modifiez toutes les valeurs comme ceci :

listen.owner = nginx
listen.group = nginx
listen.mode  = 0660

Pour les variables d'environnement, décommentez ces lignes et définissez les valeurs comme indiqué ci-dessous.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Enregistrez le fichier et quittez vim, puis démarrez PHP-FPM et activez-le pour qu'il s'exécute au démarrage.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM s'exécute sous le fichier socket, vérifiez-le avec la commande ci-dessous.

netstat -pl | grep php-fpm.sock

L'installation et la configuration de PHP et PHP-FPM 7.1 sont terminées.

Étape 4 - Installer le serveur MariaDB

Vous pouvez utiliser MySQL ou PostgreSQL pour votre projet Laravel. J'utiliserai le serveur de base de données MariaDB pour ce tutoriel. Il est disponible dans le référentiel CentOS. Installez MariaDB-server avec la commande yum ci-dessous.

yum -y install mariadb mariadb-server

Une fois l'installation terminée, démarrez 'mariadb' et activez-le pour qu'il démarre au démarrage.

systemctl start mariadb
systemctl enable mariadb

MariaDB a été démarré et s'exécute sur le port 3306, vérifiez-le avec la commande netstat.

netstat -plntu

Ensuite, configurez le mot de passe root pour MariaDB avec le 'mylsq_secure_installation ' ci-dessous.

mysql_secure_installation

Tapez votre mot de passe root mariadb, supprimez l'utilisateur anonyme, etc.

Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

L'installation et la configuration de MariaDB sont terminées.

Étape 5 - Installer PHP Composer

PHP composer est un gestionnaire de packages pour le langage de programmation PHP. Il a été créé en 2011 et s'inspire du programme d'installation "npm" de Node.js et du "bundler" de Ruby. Installez composer avec la commande curl.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Une fois l'installation terminée, essayez d'utiliser le 'composer ' et vous verrez les résultats comme ci-dessous.

composer

PHP Composer installé sur CentOS 7.

Étape 6 - Configurer l'hôte virtuel Nginx pour Laravel

Dans cette étape, nous allons créer la configuration de l'hôte virtuel nginx pour le projet Laravel. Nous devons définir le répertoire racine Web pour cette installation de Laravel, j'utiliserai le '/var/www/laravel ' en tant que répertoire racine Web.

Créez-le avec la commande mkdir ci-dessous :

mkdir -p /var/www/laravel

Ensuite, allez dans le répertoire nginx et créez un nouveau fichier de configuration d'hôte virtuel laravel.conf dans le répertoire conf.d.

cd /etc/nginx
vim conf.d/laravel.conf

Collez la configuration ci-dessous dans le fichier :

server {
        listen 80;
        listen [::]:80 ipv6only=on;

    # Log files for Debugging
        access_log /var/log/nginx/laravel-access.log;
        error_log /var/log/nginx/laravel-error.log;

    # Webroot Directory for Laravel project
        root /var/www/laravel/public;
        index index.php index.html index.htm;

        # Your Domain Name
        server_name laravel.hakase-labs.co;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

    # PHP-FPM Configuration Nginx
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

Enregistrez le fichier et quittez vim.

Testez la configuration de nginx et assurez-vous qu'il n'y a pas d'erreur, puis redémarrez le service nginx.

nginx -t
systemctl restart nginx

La configuration de l'hôte virtuel nginx pour Laravel est terminée.

Étape 7 - Installer Laravel

Avant d'installer Laravel, nous devons installer unzip sur le serveur.

yum -y install unzip

Allez maintenant dans le répertoire racine du web laravel '/var/www/laravel'.

cd /var/www/laravel

Laravel propose deux méthodes pour l'installation du framework sur le serveur. Nous pouvons installer Laravel avec le programme d'installation laravel, et nous pouvons l'installer avec PHP composer. Dans ce tutoriel, je vais installer Laravel en créant un nouveau projet avec la commande composer.

Exécutez la commande ci-dessous pour installer Laravel.

composer create-project laravel/laravel .

Attendez que l'installation de Laravel soit terminée. Cela peut prendre un certain temps.

Une fois l'installation terminée, changez le propriétaire du répertoire racine Web de Laravel en utilisateur 'nginx' et changez l'autorisation du répertoire de stockage en 755 avec les commandes ci-dessous.

chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage

L'installation de Laravel est terminée.

Étape 8 - Configurer SELinux

Dans ce didacticiel, Laravel s'exécutera en mode SELinux 'Enforcing'. Pour vérifier l'état de SELinux, exécutez la commande ci-dessous.

sestatus

Le résultat est que SELinux s'exécute en 'Enforcing '.

Ensuite, nous devons installer les outils de gestion SELinux pour CentOS 7.

Installez 'policycoreutils-python' sur le serveur.

yum -y install policycoreutils-python

Nous devons maintenant modifier le contexte des répertoires Laravel, puis appliquer les modifications avec la commande restorecon. Exécutez les commandes de gestion SELinux comme indiqué ci-dessous.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'

La configuration de SELinux pour Laravel est terminée.

Étape 9 - Tester Laravel

Ouvrez votre navigateur Web et saisissez l'URL Laravel de votre serveur. Nous avons défini le nom de domaine de Laravel dans le fichier d'hôte virtuel Nginx. Le mien est laravel.hakase-labs.co .

Lorsque vous visitez le nom de domaine, vous verrez la page d'accueil de Laravel.

L'installation de Laravel avec Nginx, PHP-FPM7 et MariaDB sur CentOS 7 a réussi.


Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer phpMyAdmin avec Nginx sur CentOS 7

  3. Comment installer Nextcloud avec Nginx et PHP 7.3 sur CentOS 8

  4. Installez Magento sur CentOS 7, avec Nginx, PHP-FPM et MariaDB

  5. Comment installer Let's Encrypt sur CentOS 8 avec Nginx

Comment installer Nginx avec ngx_pagespeed sur CentOS

Comment installer OwnCloud 8 avec Nginx et PHP-FPM sur CentOS 6

Comment installer Nginx avec PHP-FastCGI sur CentOS 6

Comment installer Magento avec Nginx sur CentOS 7

Comment installer Laravel avec Nginx sur CentOS 8

Comment installer le framework PHP Laravel avec Nginx sur CentOS 8