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.