GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer la pile LEMP (Nginx, MariaDB, PHP7.1) sur Ubuntu 17.10

Ce tutoriel va vous montrer comment installer Nginx, MariaDB et PHP7.1 (LEMP) sur Ubuntu 17.10. Vous pouvez suivre ce tutoriel sur un VPS (Virtual Private Server) ou sur un ordinateur Ubuntu 17.10 local. PHP7.1 est inclus dans Ubuntu 17.10 et a une amélioration mineure des performances par rapport à PHP7.0.

Étape 1 :Mettre à jour les packages logiciels

Avant d'installer la pile LEMP, c'est une bonne idée de mettre à jour le référentiel et les packages logiciels. Exécutez la commande suivante sur votre système d'exploitation Ubuntu 17.10.

sudo apt update

sudo apt upgrade

Étape 2 :Installer le serveur Web Nginx

Nginx est un serveur Web haute performance et très populaire de nos jours. Il peut également être utilisé comme proxy inverse. Entrez cette commande pour installer le serveur Web Nginx.

sudo apt install nginx

Une fois installé, nous pouvons permettre à Nginx de démarrer automatiquement au démarrage d'Ubuntu en exécutant la commande suivante.

sudo systemctl enable nginx

Ensuite, démarrez Nginx avec cette commande :

sudo systemctl start nginx

Vérifiez maintenant son statut.

systemctl status nginx

Sortie :

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Tue 2017-12-12 06:17:50 UTC; 51s ago
     Docs: man:nginx(8)
 Main PID: 15672 (nginx)
    Tasks: 2 (limit: 4915)
   Memory: 6.3M
      CPU: 37ms
   CGroup: /system.slice/nginx.service
           ├─15672 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─15675 nginx: worker process

"activé " indique que le démarrage automatique au démarrage est activé et nous pouvons voir que Nginx est en cours d'exécution. Notez que la commande ci-dessus ne se fermera pas immédiatement après l'exécution. Vous devez appuyer sur "q ” pour le faire cesser.

Vérifiez la version de Nginx.

nginx -v

Sortie :

nginx version: nginx/1.12.1 (Ubuntu)

Tapez maintenant l'adresse IP publique de votre serveur Ubuntu 17.10 dans la barre d'adresse du navigateur. Vous devriez voir la page Web "Bienvenue dans Nginx", ce qui signifie que le serveur Web Nginx fonctionne correctement. Si vous installez LEMP sur votre ordinateur Ubuntu 17.10 local, saisissez 127.0.0.1 ou localhost dans la barre d'adresse du navigateur.

Enfin, nous devons créer www-data (utilisateur Nginx) en tant que propriétaire du répertoire racine Web. Par défaut, il appartient à l'utilisateur root.

sudo chown www-data:www-data /usr/share/nginx/html -R

Étape 3 :Installer le serveur de base de données MariaDB

MariaDB est un remplacement direct de MySQL. Il est développé par d'anciens membres de l'équipe MySQL qui craignent qu'Oracle ne transforme MySQL en un produit à source fermée. Entrez la commande suivante pour installer MariaDB sur Ubuntu 17.10.

sudo apt install mariadb-server mariadb-client

Une fois installé, le serveur MariaDB devrait être automatiquement démarré. Utilisez systemctl pour vérifier son état.

systemctl status mariadb

Sortie :

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:enabled) 
   Active: active (running) since Tue 2017-12-12 06:36:12 UTC; 6s ago
 Main PID: 17409 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (limit: 4915)
   Memory: 59.9M
      CPU: 342ms
   CGroup: /system.slice/mariadb.service
           └─17409 /usr/sbin/mysqld

S'il ne fonctionne pas, démarrez-le avec cette commande :

sudo systemctl start mariadb

Pour permettre à MariaDB de démarrer automatiquement au démarrage, exécutez

sudo systemctl enable mariadb

Exécutez maintenant le script de sécurité post-installation.

sudo mysql_secure_installation

Lorsqu'il vous demande d'entrer le mot de passe root MariaDB, appuyez sur la touche Entrée car le mot de passe root n'est pas encore défini. Saisissez ensuite y pour définir le mot de passe root pour le serveur MariaDB.

Ensuite, vous pouvez appuyer sur Entrée pour répondre à toutes les questions restantes, ce qui supprimera l'utilisateur anonyme, désactivera la connexion root à distance et supprimera la base de données de test. Cette étape est une exigence de base pour la sécurité de la base de données MariaDB. (Remarquez que Y est en majuscule, ce qui signifie qu'appuyer sur Entrée revient à taper Y. )

Par défaut, le package MaraiDB sur Ubuntu utilise unix_socket pour authentifier la connexion de l'utilisateur, ce qui signifie essentiellement que vous pouvez utiliser le nom d'utilisateur et le mot de passe du système d'exploitation pour vous connecter à la console MariaDB. Vous pouvez donc exécuter la commande suivante pour vous connecter sans fournir de mot de passe root MariaDB.

sudo mariadb -u root

Pour quitter, exécutez

exit;

Vérifiez les informations de version du serveur MariaDB.

mariadb --version

Comme vous pouvez le voir, nous avons installé MariaDB 10.1.25.

mariadb Ver 15.1 Distrib 10.1.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Étape 4 :Installez PHP7.1

PHP7.1 est inclus dans le référentiel Ubuntu 17.10 et a une amélioration mineure des performances par rapport à PHP7.0. Entrez la commande suivante pour installer PHP7.1 et certaines extensions courantes.

sudo apt install php7.1 php7.1-fpm php7.1-mysql php-common php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-readline php7.1-mbstring php7.1-xml php7.1-gd php7.1-curl

Les extensions PHP sont couramment nécessaires pour les systèmes de gestion de contenu (CMS) comme WordPress. Par exemple, si votre installation manque de php7.1-xml , certaines pages de votre site WordPress peuvent être vides et vous pouvez trouver une erreur dans le journal des erreurs Nginx comme :

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

L'installation de ces extensions PHP garantit le bon fonctionnement de votre CMS. Lancez maintenant php7.1-fpm.

sudo systemctl start php7.1-fpm

Activer le démarrage automatique au démarrage.

sudo systemctl enable php7.1-fpm

Vérifier l'état :

systemctl status php7.1-fpm

Exemple de sortie :

● php7.1-fpm.service - The PHP 7.1 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.1-fpm.service; enabled; vendor preset:enabled)
   Active: active (running) since Tue 2017-12-12 06:53:08 UTC; 4min 25s ago
     Docs: man:php-fpm7.1(8)
 Main PID: 27560 (php-fpm7.1)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
    Tasks: 3 (limit: 4915)
   Memory: 28.0M
      CPU: 58ms
   CGroup: /system.slice/php7.1-fpm.service
           ├─27560 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf)
           ├─27580 php-fpm: pool www
           └─27583 php-fpm: pool www

Étape 5 :Créer un bloc de serveur Nginx

Un bloc de serveur Nginx est comme un hôte virtuel dans Apache. Nous n'utiliserons pas le bloc de serveur par défaut car il est inadéquat pour exécuter du code PHP et si nous le modifions, cela devient un gâchis. Supprimez donc le default lien symbolique dans sites-enabled répertoire en exécutant la commande suivante. (Il est toujours disponible en tant que /etc/nginx/sites-available/default .)

sudo rm /etc/nginx/sites-enabled/default

Créez ensuite un tout nouveau fichier de bloc de serveur sous /etc/nginx/conf.d/ répertoire.

sudo nano /etc/nginx/conf.d/default.conf

Collez le texte suivant dans le fichier. Remplacez 12.34.56.78 par l'adresse IP réelle de votre serveur.

server {
  listen 80;
  listen [::]:80;
  server_name 12.34.56.78;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

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

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx.

sudo systemctl reload nginx

Étape 6 :Testez PHP

Pour tester PHP-FPM avec le serveur Web Nginx, nous devons créer un info.php fichier dans le répertoire racine du document.

sudo nano /usr/share/nginx/html/info.php

Collez le code PHP suivant dans le fichier.

<?php phpinfo(); ?>

Enregistrez et fermez le fichier. Maintenant, dans la barre d'adresse du navigateur, saisissez server-ip-address/info.php . Remplacez sever-ip-address avec votre adresse IP actuelle. Si vous suivez ce tutoriel sur votre ordinateur local, saisissez 127.0.0.1/info.php ou localhost/info.php .

Vous devriez voir les informations PHP de votre serveur. Cela signifie que les scripts PHP peuvent s'exécuter correctement avec le serveur Web Nginx.

Comment installer PHP7.2

PHP7.2 est la dernière version stable de PHP, publiée le 30 novembre 2017 et ses performances sont légèrement améliorées par rapport à PHP7.1. Nous pouvons ajouter le PPA d'Ondrej Sury pour installer PHP7.2 sur Ubuntu 17.10. Ce type est également le mainteneur de Certbot PPA.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

Ensuite, nous pouvons installer PHP7.2 et les extensions courantes en utilisant la commande suivante.

sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

Démarrez maintenant PHP7.2-FPM.

sudo systemctl start php7.2-fpm

Activez le démarrage automatique au démarrage du système.

sudo systemctl enable php7.2-fpm

Vérifiez son état :

systemctl status php7.2-fpm

Utiliser PHP7.2-FPM avec Nginx

Pour que Nginx utilise PHP7.2-FPM au lieu de PHP7.1-FPM, nous devons modifier le fichier de blocage du serveur Nginx.

sudo nano /etc/nginx/conf.d/default.conf

Trouvez la ligne suivante.

fastcgi_pass unix:/run/php/php7.1-fpm.sock;

Modifier php7.1-fpm vers php7.2-fpm .

fastcgi_pass unix:/run/php/php7.2-fpm.sock;

Enregistrez et fermez le fichier. Rechargez ensuite Nginx pour que la modification prenne effet.

sudo systemctl reload nginx

Si vous actualisez le server-ip-address/info.php page, vous verrez que Nginx utilise maintenant PHP7.2-FPM.

PHP7.1 peut coexister avec PHP7.2. Si vous ne souhaitez pas utiliser PHP7.1, vous pouvez le supprimer. Veuillez noter que certaines applications Web peuvent ne pas être compatibles avec PHP7.2 comme NextCloud 12. Dans mon test, WordPress fonctionne bien avec PHP7.2.

Bravo! Vous avez installé avec succès Nginx, MariaDB et PHP7 sur Ubuntu 17.10. Pour la sécurité de votre serveur, vous devez supprimer le fichier info.php maintenant pour éviter les regards indiscrets.

sudo rm /usr/share/nginx/html/info.php

C'est ça! J'espère que ce tutoriel vous a aidé à installer la pile LEMP sur Ubuntu 17.10 . Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de conseils et d'astuces.


Ubuntu
  1. Comment installer la pile LEMP sur Arch Linux

  2. Comment installer Nginx, MariaDB, PHP (pile LEMP) sur Debian 11

  3. Comment installer LEMP sur Ubuntu 18.04

  4. Comment installer Magento 2.4 avec la pile LEMP sur Ubuntu 20.04

  5. Comment installer LEMP Stack Nginx, MySQL, PHP sur Ubuntu 22.04

Comment installer LEMP sur Ubuntu 15.10

Comment installer LEMP sur Ubuntu 16.04

Comment installer la pile LAMP sur Ubuntu 17.10

Comment installer LAMP Stack sur Ubuntu 18.04 LTS

Comment installer la pile LEMP avec PhpMyAdmin dans Ubuntu 20.04

Comment installer la pile LEMP (Nginx, MariaDB, PHP7.2) sur Ubuntu 18.04 LTS ?