Comment installer le cadre Laravel PHP avec Nginx sur Centos 8

Comment installer le cadre Laravel PHP avec Nginx sur Centos 8

Laravel est un cadre Web open-source, bien connu et moderne basé sur PHP avec une syntaxe expressive, élégante et facile à comprendre, ce qui facilite la création de grandes applications Web robustes.

Ses caractéristiques clés incluent un moteur de routage simple et rapide, un conteneur d'injection de dépendance puissant, plusieurs back-end pour le stockage de session et du cache, une base de données expressive et intuitive (cartographie relationnelle d'objet), un traitement de travail de fond robuste et une diffusion en temps réel.

Il utilise également des outils tels que Compositeur - un gestionnaire de packages PHP pour gérer les dépendances et Artisan - Une interface de ligne de commande pour la création et la gestion des applications Web.

Dans cet article, vous apprendrez à installer la dernière version du Laravel PHP Framework Web sur Centos 8 Distribution Linux.

Exigences du serveur

Le Laravel Le cadre a les exigences suivantes:

  • Php> = 7.2.5 Avec ces extensions PHP OpenSSL, PDO, MBSTRING, Tokenizer, XML, CTYPE et JSON.
  • Compositeur - pour installer et gérer les dépendances.

Étape 1: Installation de la pile LEMP dans Centos 8

1. Pour démarrer, mettez à jour les packages logiciels système et installez Lemp empiler (Linux, Nginx, MariaDB / MySQL, et Php) en utilisant les commandes DNF suivantes.

# dnf mise à jour # dnf installer nginx php php-fpm php-commun php-xml php-mbstring php-json php-zip mariaDb-server php-mysqlnd 

2. Quand le Lemp L'installation est complète, vous devez démarrer le Php-pfm, Nginx et Mariadb Services utilisant les commandes SystemCTL suivantes.

# systemctl start php-fpm nginx mariaDB # systemctl activer php-fpm nginx mariaDB # systemctl status php-fpm nginx mariaDB 

3. Ensuite, vous devez sécuriser et durcir Mariadb moteur de base de données utilisant le script de sécurité comme indiqué.

# mysql_secure_installation 

Répondez aux questions suivantes pour sécuriser l'installation du serveur.

Entrez le mot de passe actuel pour root (entrez pour aucun): Entrer Définir le mot de passe? [O / N] y #set nouveau mot de passe racine supprimer les utilisateurs anonymes? [O / N] y Interdire la connexion racine à distance? [O / N] y Supprimer la base de données de test et y accéder? [O / N] y Recharger les tables de privilège maintenant? [O / N] y

4. Si vous avez le pare-feu Service en cours d'exécution, vous devez ouvrir le Http et Https Service dans le pare-feu pour activer les demandes des clients au serveur Web Nginx.

# Firewall-Cmd --zone = public --permanent --Add-Service = http # Firewall-Cmd --zone = public --permanent --add-Service = Https # Firewall-Cmd --reload 

5. Enfin, vous pouvez confirmer que votre Lemp Stack s'exécute à l'aide d'un navigateur à l'adresse IP de votre système.

http: // server-ip 
Vérifiez la page Web de Nginx

Étape 2: Configuration et sécurisation de PHP-FPM et Nginx

6. Pour traiter les demandes du Nginx serveur Web, Php-fpm peut écouter sur une prise Unix ou une prise TCP et ceci est défini par le écouter paramètre dans le / etc / php-fpm.d / www.confli fichier de configuration.

# vi / etc / php-fpm.d / www.confli 

Par défaut, il est configuré pour écouter sur une prise Unix comme indiqué dans la capture d'écran suivante. La valeur ici sera spécifiée dans le fichier de blocs de serveur Nginx plus tard.

Définir la prise d'écoute PHP-FPM

7. Si vous utilisez une prise Unix, vous devez également définir la propriété et les autorisations correctes comme indiqué dans la capture d'écran. Décommente les paramètres suivants et définissez leurs valeurs sur l'utilisateur et le groupe pour correspondre à l'utilisateur et au groupe Nginx courir comme.

écouter.propriétaire = nginx écouter.groupe = nginx écouter.mode = 066 
Définissez la propriété de l'écoute de socket sur Nginx

8. Ensuite, définissez également le fuseau horaire à l'échelle du système dans le / etc / php.ini fichier de configuration.

# vi / etc / php.ini 

Chercher la ligne ";date.fuseau horaire" et l'incommente, puis définissez sa valeur comme indiqué dans la capture d'écran (utilisez des valeurs qui s'appliquent à votre région / continent et à votre pays).

 date.fuseau horaire = Afrique / Kampala 
Réglez le fuseau horaire en php

9. Pour atténuer le risque de Nginx Les demandes de transmission des utilisateurs malveillants qui utilisent d'autres extensions pour exécuter le code PHP à PHP-FPM, décommentez le paramètre suivant et définissez sa valeur 0.

CGI.FIX_PATHINFO = 1 
Sécurisé PHP et Nginx

dix. En relation avec le point précédent, décommentez également le paramètre suivant dans le / etc / php-fpm.d / www.confli déposer. Lisez le commentaire pour plus d'explications.

sécurité.limit_extensions = .php .Php3 .php4 .php5 .php7 
Limiter les exécutions d'extension PHP

Étape 3: Installation du Framework PHP du compositeur et de Laravel

11. Ensuite, installez le Compositeur package en exécutant les commandes suivantes. La première commande télécharge le programme d'installation, puis l'exécute en utilisant PHP.

# curl -ss https: // getComposer.org / installateur | PHP # MV Composer.phar / usr / local / bin / compositeur # chmod + x / usr / local / bin / compositeur 
Installez le compositeur dans Centos 8

12. Maintenant que Compositeur est installé, utilisez-le pour installer des fichiers et des dépendances Laravel comme suit. Remplacer mon site.com Avec le nom du répertoire où les fichiers Laravel seront stockés, le chemin absolu (ou chemin racine dans le fichier de configuration Nginx) sera / var / www / html / mysite.com.

# cd / var / www / html / # composer créat-project --v-dist-dis-rist laravel / laravel mysite.com 
Installez Laravel dans Centos 8

Si tout se passe bien pendant le processus, l'application doit être installée avec succès et une clé doit être générée comme indiqué dans la capture d'écran suivante.

Installation de Laravel complète

13. Pendant le processus d'installation, le .env Le fichier d'environnement a été créé et l'application requise a également été générée, vous n'avez donc pas besoin de les créer manuellement comme avant. Pour confirmer cela, exécutez une longue liste du répertoire racine Laravel à l'aide de la commande LS.

# ls -la mysite.com / 
Liste des fichiers Laravel

14. Ensuite, vous devez configurer la propriété et les autorisations correctes sur le stockage et le bootstrap / cache Répertoires à être écrivains par le serveur Web Nginx.

# chown -r: nginx / var / www / html / mysite.com / stockage / # chown -r: nginx / var / www / html / mysite.com / bootstrap / cache / # chmod -r 0777 / var / www / html / mysite.com / stockage / # chmod -r 0775 / var / www / html / mysite.com / bootstrap / cache / 

15. Si Selinux activé sur votre serveur, vous devez également mettre à jour le contexte de sécurité du stockage et bootstrap / cache répertoires.

# SEMANAGE FContext -a -t httpd_sys_rw_content_t '/ var / www / html / mysite.com / stockage (/.*)?'# SEMANAGE Fcontext -a -t httpd_sys_rw_content_t' / var / www / html / mysite.com / bootstrap / cache (/.*)?'# restorecon -rv' / var / www / html / mysite.com ' 

Étape 4: Configurer le bloc de serveur Nginx pour Laravel

16. Pour Nginx Pour commencer à servir votre site Web ou votre application, vous devez créer un bloc de serveur pour cela dans un .confli dépôt sous / etc / nginx / confre.d/ Répertoire comme indiqué.

# vi / etc / nginx / confr.d / mysite.com.confli 

Copiez et collez la configuration suivante dans le fichier. Prenez note de la racine et fastcgi_pass paramètres.

Server écouter 80; server_name mysite.com; root / var / www / html / mysite.com / public; Index index.PHP; Charset UTF-8; gzip sur; GZIP_TYPES TEXT / CSS Application / JavaScript Text / JavaScript Application / X-Javascript Image / SVG + Texte XML / Texte en clair / Texte XSD / Texte XSL / Image XML / X-ICON; Emplacement / try_files $ uri $ uri / / index.php?$ query_string;  Emplacement ~ \.php inclure fastcgi.conf; fastcgi_split_path_info ^ (.+\.php) (/.+) $; fastcgi_pass Unix: / run / php-fpm / www.chaussette;  emplacement ~ / \.ht nier tout;  

17. Enregistrez le fichier et vérifiez si le Nginx La syntaxe de configuration est correcte en exécutant.

# nginx -t 
Vérifier la configuration de Nginx

18. Puis redémarrez le Php-fpm et Nginx Services pour les changements récents pour prendre effet.

# systemctl redémarrer php-fpm # systemctl redémarrer nginx 

Étape 5: Accès au site Web de Laravel à partir d'un navigateur Web

19. Pour accéder au site Web de Laravel à mon site.com, qui n'est pas un nom de domaine entièrement qualifié (FQDN) et il n'est pas enregistré (il n'est utilisé qu'à des fins de test), nous utiliserons le / etc / hôtes Fichier sur votre machine locale pour créer un DNS local.

Exécutez la commande suivante pour ajouter l'adresse IP et le domaine du serveur dans le fichier requis (remplacez la valeur en fonction de vos paramètres).

# ip Add #get Remote Server ip $ echo "10.42.0.21 mysite.com "| sudo tee -a / etc / hôtes 
Ajouter les entrées DNS dans le fichier local

20. Ensuite, ouvrez un navigateur Web sur la machine locale et utilisez l'adresse suivante pour naviguer.

http: // mysite.com 
Accès Web Laraval

Vous avez réussi à déployer Laravel sur Centos 8. Vous pouvez maintenant commencer à développer votre site Web ou votre application Web en utilisant Laravel. Pour plus d'informations, voir Laravel Getting Bear Guide.