Comment installer nginx, mysql & php (lemp) sur Ubuntu 20.04

Comment installer nginx, mysql & php (lemp) sur Ubuntu 20.04

Une combinaison de Linux, Nginx, MySQL et PHP est connue sous le nom de LEMP Stack est l'environnement d'hébergement Web populaire pour l'application basée sur PHP. Ici Linux est un système d'exploitation, Nginx est le serveur Web populaire, MySQL est le système de gestion de base de données relationnel utilisé pour stocker les données et PHP est le langage de programmation largement utilisé.

Cet article vous aidera à installer nginx, mysql 8.0 et php 7.4 sur le système Ubuntu Linux. Commençons par l'installation de LEMP Stack votre machine Ubuntu.

Conditions préalables

Avant de commencer l'installation LEMP sur Ubuntu:

  • Un ubuntu en cours d'exécution 20.04 Système
  • Connectez-vous en tant que compte promplimé Sudo sur votre système. Pour le créer, suivez le tutoriel de configuration du serveur initial.
  • Un nom de domaine / sous-domaine pointé vers votre serveur

Installation du serveur Web Nginx

Ensuite, vous devez installer le serveur Web Nginx sur votre système. Les packages Nginx sont disponibles dans les référentiels APT par défaut.

Exécutez les commandes suivantes pour l'installer:

sudo apt update sudo apt install nginx 

Installation de PHP avec PHP-FPM

Php 7.4 packages sont disponibles dans les référentiels par défaut sur Ubuntu 20.04 LTS. Utilisez la commande suivante pour mettre à jour APT Cache et installer PHP sur votre système.

sudo apt update sudo apt install -y php7.4 PHP7.4-FPM 

Installez également les modules PHP supplémentaires requis pour votre application.

sudo apt installer php7.4 curl php7.4-GD PHP7.4-JSON PHP7.4 mbstring php7.4-xml 

Vous avez installé PHP 7.4 avec le package FPM PHP sur votre système. Vérifions l'état du service FPM PHP en exécutant la commande ci-dessous:

Sudo Systemctl Status PHP7.4-fpm ● PHP7.4-FPM.Service - le PHP 7.4 Fastcgi Process Manager chargé: chargé (/ lib / systemd / système / php7.4-FPM.service; activé; Vendor Preset: Activé) Actif: Active (en cours d'exécution) Depuis Tue 2020-06-16 05:15:57 UTC; Il y a 34 Docs: Homme: PHP-FPM7.4 (8) Processus: 882716 ExecStartPost = / usr / lib / php / php-fpm-socket-helper install / run / php / php-fpm.chaussette / etc / php / 7.4 / FPM / Pool.d / www.Conf 74> Pid principal: 882699 (PHP-FPM7.4) Statut: "Processus actifs: 0, inactif: 2, Demandes: 0, lent: 0, trafic: 0req / sec" Tâches: 3 (Limite: 2283) Mémoire: 10.3m CGroup: / Système.tranche / php7.4-FPM.Service ├fiques882699 PHP-FPM: Master Process (/ etc / php / 7.4 / FPM / PHP-FPM.Conf) ├─882714 PHP-FPM: Pool www └fiques882715 PHP-FPM: Pool www 16 juin 05:15:57 Tecadmin Systemd [1]: Démarrage du PHP 7.4 FASTCGI Process Manager… 16 juin 05:15:57 Tecadmin Systemd [1]: a commencé le php 7.4 Fastcgi Process Manager. 

Installation de MySQL

Le Ubuntu 20 par défaut.04 Les référentiels apt contient MySQL Server 8.0. Enfin, installez les packages MySQL-Server pour la base de données MySQL. Installez également le package PHP-Mysql pour utiliser le support MySQL à l'aide de PHP. Utilisez la commande suivante pour l'installer.

sudo apt installer mysql-server php7.4-Mysql 

Le programme d'installation invitera le mot de passe racine, ce mot de passe fonctionnera pour votre utilisateur racine MySQL. Après l'installation de MySQL, exécutez la commande suivante pour les paramètres initiaux de MySQL Server. Vous verrez que le script provoquera plus de paramètres que les versions MySQL précédentes comme la politique de validation de mot de passe, etc.

sudo mysql_secure_installation 
Sécuriser le déploiement du serveur MySQL. Connexion à MySQL à l'aide d'un mot de passe vide. Valider le composant de mot de passe peut être utilisé pour tester les mots de passe et améliorer la sécurité. Il vérifie la force du mot de passe et permet aux utilisateurs de définir uniquement les mots de passe qui sont suffisamment sécurisés. Souhaitez-vous configurer le composant de mot de passe valider?  Appuyez sur y | y pour oui, toute autre touche pour non: y Il y a trois niveaux de politique de validation du mot de passe: Longue longueur> = 8 longueur moyenne> = 8, numérique, cas mixte et caractères spéciaux forts> = 8, numérique, Cas mixte, caractères spéciaux et fichier de dictionnaire Veuillez entrer 0 = Low, 1 = Medium et 2 = Strong: 2 Veuillez définir le mot de passe pour root ici. Nouveau mot de passe: réintégré le nouveau mot de passe: force estimée du mot de passe: 100 Souhaitez-vous continuer le mot de passe fourni?(Appuyez sur y | y pour oui, toute autre touche pour non): y Par défaut, une installation MySQL a un utilisateur anonyme, permettant à quiconque de se connecter à MySQL sans avoir à faire créer un compte d'utilisateur pour eux. Ceci est destiné uniquement aux tests et à rendre l'installation un peu plus fluide. Vous devez les retirer avant de vous déplacer dans un environnement de production. Supprimer les utilisateurs anonymes? (Appuyez sur Y | Y pour oui, toute autre touche pour non): Y Succès. Normalement, la racine ne doit être autorisée que de se connecter à partir de «localhost». Cela garantit que quelqu'un ne peut pas deviner le mot de passe racine du réseau. Interdire la connexion racine à distance? (Appuyez sur Y | Y pour oui, toute autre touche pour non): Y Succès. Par défaut, MySQL est livré avec une base de données nommée «test» auquel tout le monde peut accéder. Ceci est également destiné aux tests et doit être supprimé avant de passer à un environnement de production. Supprimer la base de données de test et y accéder? (Appuyez sur Y | Y pour oui, toute autre touche pour non): Y - Base de données de test de dépôt… Succès. - Suppression des privilèges sur la base de données de test… Succès. Le rechargement des tables de privilège garantira que toutes les modifications apportées jusqu'à présent prendront effet immédiatement. Recharger les tables de privilège maintenant? (Appuyez sur Y | Y pour oui, toute autre touche pour non): Y Succès. Terminé! 

Configurer nginx avec php-fpm

Créons un hôte virtuel Nginx pour fonctionner avec FPM / FASTCGI. Pour ce tutoriel, nous utilisons VirtualHost par défaut. Modifier le fichier de configuration de l'hôte VirtualHost dans l'éditeur de texte. Vous pouvez créer un nouveau VirtualHost conformément à vos exigences, alors assurez-vous d'activer tout nouveau VirtualHost.

sudo vim / etc / nginx / sites-disponible / exemple / exemple.com 

Utilisez la configuration de l'hôte virtuel Nginx ci-dessous avec les paramètres FPM PHP. Mettez à jour la configuration en tant que suivi.

Server écouter 80; root / var / www / html; Index index.index PHP.index html.htm; Exemple de nom.com; Emplacement / try_files $ uri $ uri / = 404; Emplacement ~ \.php $ inclure des extraits / fastcgi-php.conf; fastcgi_pass Unix: / var / run / php / php7.4-FPM.chaussette;
123456789101112131415Server écouter 80; root / var / www / html; Index index.index PHP.index html.htm; Exemple de nom.com; Emplacement / try_files $ uri $ uri / = 404; Emplacement ~ \.php $ inclure des extraits / fastcgi-php.conf; fastcgi_pass Unix: / var / run / php / php7.4-FPM.chaussette;

Enregistrez vos modifications dans le fichier de configuration et créez un lien vers le répertoire compatible du site.

sudo ln -s / etc / nginx / sites-disponible / exemple.com / etc / nginx / sites compatible / exemple.com 

Puis redémarrez le service Nginx pour recharger les modifications.

sudo systemctl redémarrer nginx 

Étape 5 - Gérer les services

Nous avons fait avec l'installation de la pile de lampe sur Ubuntu 20.04 Système LTS. Les commandes ci-dessous vous aideront à démarrer / arrêter ou redémarrer les services Nginx et MySQL en cours d'exécution avec SystemD.

Pour redémarrer les services Nginx et MySQL, Type:

sudo systemctl redémarrer nginx sudo systemctl redémarrer mysql 

Pour démarrer les services Nginx et MySQL, Type:

sudo systemctl start nginx sudo systemctl start mysql 

Pour arrêter les services Nginx et MySQL, Type:

sudo systemctl stop nginx sudo systemctl stop mysql 

Étape 6 - Ajustez les règles du pare-feu

Vous pouvez fournir directement un nom de service comme «HTTP» ou «HTTPS» pour permettre. Le fichier Firewalld utilise / etc / services pour déterminer le port correspondant du service.

Sudo Firewall-CMD - Permanent --Add-Service = HTTP Sudo Firewall-CMD - PERMANENT --Add-Service = HTTPS  SUDO FIRWALL-CMD - Reload 

Étape 7 - Vérifiez la configuration

Après avoir terminé toute configuration. Créons un Info.php Document de site Web de fichier racine avec le contenu suivant.

sudo echo ""> / var / www / html / info.php 

Accédez maintenant à ce fichier dans le navigateur Web. Vous verrez l'écran comme ci-dessous avec tous les détails de PHP sur le serveur.

Toutes nos félicitations! Vous avez configuré avec succès le serveur LEMP sur votre Ubuntu 20.04 Système LTS.