GNU/Linux >> Tutoriels Linux >  >> Rocky Linux

Comment installer et configurer PHP et Nginx (LEMP) sur Rocky Linux/Alma Linux 8

PHP est un langage de script à usage général orienté vers le développement Web. C'est l'un des langages de programmation populaires pour le Web. Les outils populaires tels que WordPress sont codés en php. Les grandes entreprises comme Facebook utilisent également fortement php.

Nginx est un serveur Web qui peut également être utilisé comme proxy inverse, équilibreur de charge, proxy de messagerie et cache HTTP. Il a commencé comme un serveur Web conçu pour des performances et une stabilité maximales. Nginx a gagné en popularité depuis sa sortie en raison de son utilisation légère des ressources et de sa capacité à évoluer facilement sur un matériel minimal. Nginx excelle dans la diffusion rapide de contenu statique et est conçu pour transmettre les requêtes dynamiques à d'autres logiciels mieux adaptés à ces fins.

Contenu associé

  • Comment installer et configurer PHP et Nginx (LEMP) sur OpenSUSE Leap 15.3
  • Comment installer la pile Apache PHP 7.4 (LAMP) sur Rocky Linux/Centos 8
  • Comment installer et configurer PHP et Apache (pile LAMP) sur Ubuntu 20.04
  • Comment installer et configurer PHP et Nginx (LEMP) sur Ubuntu 20.04
  • Comment installer et configurer PHP et Apache (pile LAMP) sur Debian 11
  • Comment installer et configurer PHP et Nginx (LEMP) sur Debian 11

Table des matières

  1. S'assurer que le serveur est à jour
  2. Installer PHP sur Rocky Linux/Alma Linux 8
  3. Installer Nginx sur Rocky Linux/Alma Linux 8
  4. Installation de php-fpm dans Rocky Linux/Alma Linux 8
  5. Création d'un site simple et configuration de l'hôte virtuel
  6. Tester la configuration

1. S'assurer que le serveur est à jour

Avant de continuer, il est toujours recommandé de s'assurer que le serveur est à jour. Utilisez ces commandes pour y parvenir

sudo df update -y

2. Installation de PHP sur Rocky Linux/Alma Linux 8

Pour que les fichiers php soient servis, php doit être configuré dans le système. Dans ce guide, nous allons installer php 7.4.

PHP 7.4 n'est pas encore disponible dans les dépôts par défaut. Le Remi Repository est le référentiel idéal pour installer php7.4. Remi repo est un référentiel YUM gratuit et stable principalement pour la pile PHP. Il contient des packages pour les dernières versions de PHP.

Pour activer Remi Repository dans notre serveur Centos :

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Confirmez que le référentiel remi a été installé et activé avec cette commande :

$ sudo dnf repolist
repo id                                 repo name
appstream                               CentOS Linux 8 - AppStream
baseos                                  CentOS Linux 8 - BaseOS
epel                                    Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                            Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                  CentOS Linux 8 - Extras
remi-modular                            Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe                               Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

Vous devriez voir les dépôts remi dans la liste.

Maintenant que le référentiel a été installé, recherchons php. Utilisez cette commande :

$ sudo dnf module list php
Last metadata expiration check: 0:49:30 ago on Wed 22 Dec 2021 04:23:13 AM UTC.
Rocky Linux 8 - AppStream
Name           Stream             Profiles                            Summary
php            7.2 [d]            common [d], devel, minimal          PHP scripting language
php            7.3                common [d], devel, minimal          PHP scripting language
php            7.4                common [d], devel, minimal          PHP scripting language

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name           Stream             Profiles                            Summary
php            remi-7.2           common [d], devel, minimal          PHP scripting language
php            remi-7.3           common [d], devel, minimal          PHP scripting language
php            remi-7.4           common [d], devel, minimal          PHP scripting language
php            remi-8.0           common [d], devel, minimal          PHP scripting language
php            remi-8.1           common [d], devel, minimal          PHP scripting language

De la liste. nous pouvons voir que celui par défaut est 7.2. Exécution d'un dnf install php installera la 7.2 dont nous ne voulons pas. Activons le 7.4 en utilisant cette commande :

sudo dnf module enable php:remi-7.4

Si, pour une raison quelconque, il échoue, vous pouvez réinitialiser le module existant avec cette commande :

sudo dnf module reset php

Maintenant que le dépôt a été activé, installons php avec cette commande :

sudo dnf install -y php \
    php-common \
    php-cli

Une fois réussi. confirmez la version installée avec cette commande :

$ php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies

3. Installer Nginx sur Rocky Linux

Nous utiliserons Nginx pour servir le contenu PHP. Nginx, en tant que serveur Web stable à hautes performances et avec une très faible consommation de ressources, est le complément parfait pour PHP-FPM. Nginx a une architecture asynchrone beaucoup plus évolutive, basée sur les événements.

Nginx est disponible dans les dépôts Rocky Linux/Alma Linu par défaut. Installez-le à l'aide de cette commande :

sudo dnf install -y nginx

Confirmez le nginx installé

$ rpm -qi nginx
Name        : nginx
Epoch       : 1
Version     : 1.14.1
Release     : 9.module+el8.4.0+542+81547229
Architecture: x86_64
Install Date: Wed 22 Dec 2021 05:16:08 AM UTC
Group       : System Environment/Daemons
Size        : 1669719
License     : BSD
Signature   : RSA/SHA256, Thu 10 Jun 2021 09:22:38 AM UTC, Key ID 15af5dac6d745a60
Source RPM  : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Build Date  : Thu 10 Jun 2021 09:10:40 AM UTC
Build Host  : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email protected]
Vendor      : Rocky
URL         : http://nginx.org/
Summary     : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low

Le service ne sera pas démarré par défaut. Pour démarrer Nginx, utilisez cette commande :

sudo systemctl start nginx

Confirmez l'état à l'aide de cette commande :

$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           └─php-fpm.conf
   Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 45s ago
  Process: 118235 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 118228 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 118226 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 118237 (nginx)
    Tasks: 3 (limit: 23167)
   Memory: 5.0M
   CGroup: /system.slice/nginx.service
           ├─118237 nginx: master process /usr/sbin/nginx
           ├─118238 nginx: worker process
           └─118239 nginx: worker process

Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The nginx HTTP and reverse proxy server.

Pour activer le service au démarrage, utilisez cette commande systemd :

sudo systemctl enable nginx

4. Installation de PHP FPM dans Rocky Linux/Alma Linux 8

PHP-FPM (acronyme de FastCGI Process Manager) est une implémentation PHP (Hypertext Processor) FastCGI alternative extrêmement populaire. PHP-FPM est l'implémentation alternative la plus populaire de PHP FastCGI. Il possède des fonctionnalités supplémentaires qui sont vraiment utiles pour les sites Web à fort trafic. Lorsque vous utilisez Nginx avec PHP-FPM, les performances au niveau de la consommation de mémoire sont améliorées.

PHP s'exécute en tant que service séparé lors de l'utilisation de PHP-FPM. En utilisant cette version de PHP comme interpréteur de langage, les requêtes sont traitées via un socket TCP/IP; de sorte que le serveur Web Nginx ne gère que les requêtes HTTP et que PHP-FPM interprète le code PHP. Le fait d'avoir deux services distincts est essentiel pour gagner en efficacité.

Installez php-fpm à l'aide de cette commande :

sudo dnf install -y php-fpm

Le service ne sera pas démarré par défaut. Pour le démarrer, utilisez cette commande systemd :

sudo systemctl start php-fpm

Vérifiez l'état du service pour confirmer qu'il est en cours d'exécution à l'aide de cette commande :

$ sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 3min 5s ago
 Main PID: 118227 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 23167)
   Memory: 22.9M
   CGroup: /system.slice/php-fpm.service
           ├─118227 php-fpm: master process (/etc/php-fpm.conf)
           ├─118230 php-fpm: pool www
           ├─118231 php-fpm: pool www
           ├─118232 php-fpm: pool www
           ├─118233 php-fpm: pool www
           └─118234 php-fpm: pool www

Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The PHP FastCGI Process Manager.

5. Création d'un site simple et configuration de l'hôte virtuel

Nginx vous permet de desservir plusieurs sites à l'aide d'hôtes virtuels. Le concept d'hôtes virtuels autorise plusieurs sites Web sur un système ou un serveur Web. Les serveurs sont différenciés par leur nom d'hôte. Les visiteurs du site Web sont acheminés par nom d'hôte ou adresse IP vers l'hôte virtuel approprié. L'hébergement virtuel permet aux entreprises partageant un serveur d'avoir chacune leur propre nom de domaine.

Dans cet exemple, nous utiliserons le domaine site1.citizix.com pour l'hôte virtuel mais serons libres d'utiliser le domaine de votre choix. Veuillez noter que le DNS du domaine à utiliser doit déjà être configuré pour pointer vers l'adresse IP du serveur. Confirmez cela avec :

dig -t A site1.citizix.com

Créer un répertoire et ajouter un exemple de contenu

La page par défaut de nginx est configurée comme un hôte virtuel par défaut servant le contenu de /var/www/html . Il est recommandé de créer le répertoire de votre site dans le /var/www car c'est une bonne pratique de servir à partir de là.

Créons un répertoire pour notre site avec la commande suivante :

sudo mkdir /var/www/site1.citizix.com

Créons un simple index.php page à servir à partir de notre site. Vous aurez besoin de vim pour que cela fonctionne, sinon utilisez cette commande :

sudo dnf install -y vim

Modifier le fichier :

sudo vim /var/www/site1.citizix.com/index.php

Ajouter du contenu au fichier :

<?php phpinfo(); ?>

Création d'un hôte virtuel (blocs de serveur)

Un bloc de serveur Nginx peut être utilisé pour encapsuler les détails de configuration et héberger plusieurs domaines sur un même serveur. Nous allons créer un hébergeur virtuel pour notre site (site1.citizix.com).

Les configurations des hôtes virtuels Nginx sont stockées dans le répertoire /etc/nginx/conf.d/ . Créons une configuration pour notre site :

sudo vim /etc/nginx/conf.d/site1.citizix.com.conf

Ajoutez le contenu suivant

server {
    listen 80;
    server_tokens off;
    client_max_body_size 100M;
    server_name site1.citizix.com;

    access_log /var/log/nginx/site1.citizix.com.log;
    error_log  /var/log/nginx/site1.citizix.com.log;

    root /var/www/site1.citizix.com;
    index index.php;

    if ($host !~* ^(site1.citizix.com)$) {
        return 444;
    }

    location / {
        proxy_read_timeout 600;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Redémarrons le service nginx et php-fpm pour que la configuration s'applique

sudo systemctl restart php-fpm
sudo systemctl restart nginx

6. Test de la configuration

Pour tester la configuration, ouvrez votre navigateur et chargez le domaine que vous avez configuré. Dans mon cas, c'est http://site1.citizix.com . Vous devriez voir la page d'informations php.

Si vous n'avez pas encore configuré vos paramètres DNS ou si vous ne voulez tout simplement pas que le site soit encore en ligne, vous pouvez modifier le fichier hosts de votre ordinateur. Pour ce faire, utilisez la commande suivante dans la CLI de votre ordinateur local

sudo vim /etc/hosts

Ensuite, ajoutez l'adresse IP de votre serveur actuel suivie du nom de domaine que vous configurez, par exemple :

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

Vous devriez maintenant pouvoir enregistrer le fichier et y accéder depuis un navigateur Web.

Conclusion

Hôtes virtuels Nginx ou server Les blocs sont un excellent moyen d'ajouter des sites Web supplémentaires au même serveur d'origine. Le nombre de possibilités de configuration pour un site donné est presque infini lorsque vous commencez à modifier le fichier de configuration de l'hôte virtuel pour l'adapter aux besoins spécifiques de votre site.

Dans ce guide, nous avons appris à configurer un hôte virtuel pour diffuser du contenu PHP dans un système basé sur Rocky Linux/Alma Linux ou RHEL.


Rocky Linux
  1. Comment installer WordPress avec LEMP (Nginx, MariaDB et PHP) sur Rocky Linux 8 ?

  2. Comment installer Erlang sur Rocky Linux/Alma Linux/CentOS 8

  3. Comment installer et configurer PHP et Nginx (LEMP) sur OpenSUSE Leap 15.3

  4. Comment configurer Laravel Bagisto avec Nginx et PHP-FPM dans Rocky Linux/Alma Linux 8

  5. Comment installer et configurer Memcached sur Rocky Linux/Alma Linux 8

Comment installer PHP 7.4 sur Rocky Linux 8

Comment installer Linux, Nginx, MariaDB et PHP (LEMP) sur Fedora 22

Comment installer PHP 8 sur Rocky Linux 8

Comment installer Nginx sur Rocky Linux 8

Comment installer Laravel sur Rocky Linux 8

Comment installer Nginx sur Rocky Linux 9