GNU/Linux >> Linux Esercitazione >  >> Rocky Linux

Come installare e configurare PHP e Nginx (LEMP) su Rocky Linux/Alma Linux 8

PHP è un linguaggio di scripting generico orientato allo sviluppo web. È uno dei più diffusi linguaggi di programmazione per il web. Strumenti popolari come WordPress sono codificati utilizzando php. Anche le grandi aziende come Facebook usano pesantemente php.

Nginx è un server Web che può essere utilizzato anche come proxy inverso, bilanciamento del carico, proxy di posta e cache HTTP. È nato come un server web progettato per le massime prestazioni e stabilità. Nginx è diventato popolare sin dal suo rilascio grazie al suo utilizzo leggero delle risorse e alla sua capacità di scalare facilmente su hardware minimo. Nginx eccelle nel servire rapidamente contenuti statici ed è progettato per passare le richieste dinamiche ad altri software più adatti a tali scopi.

Contenuti correlati

  • Come installare e configurare PHP e Nginx (LEMP) su OpenSUSE Leap 15.3
  • Come installare lo stack Apache PHP 7.4 (LAMP) su Rocky Linux/Centos 8
  • Come installare e configurare PHP e Apache (stack LAMP) su Ubuntu 20.04
  • Come installare e configurare PHP e Nginx (LEMP) su Ubuntu 20.04
  • Come installare e configurare PHP e Apache (stack LAMP) su Debian 11
  • Come installare e configurare PHP e Nginx (LEMP) su Debian 11

Indice dei contenuti

  1. Assicurarsi che il server sia aggiornato
  2. Installazione di PHP su Rocky Linux/Alma Linux 8
  3. Installazione di Nginx su Rocky Linux/Alma Linux 8
  4. Installazione di php-fpm in Rocky Linux/Alma Linux 8
  5. Creazione di un sito semplice e configurazione dell'host virtuale
  6. Test della configurazione

1. Garantire che il server sia aggiornato

Prima di procedere, è sempre buona norma assicurarsi che il server sia aggiornato. Usa questi comandi per raggiungere questo obiettivo

sudo df update -y

2. Installazione di PHP su Rocky Linux/Alma Linux 8

Affinché i file php possano essere serviti, php deve essere impostato nel sistema. In questa guida installeremo php 7.4.

PHP 7.4 non è ancora disponibile nei repository predefiniti. Il Remi Repository è il repository perfetto per installare php7.4. Remi repo è un repository YUM gratuito e stabile principalmente per lo stack PHP. Contiene pacchetti per le ultime versioni di PHP.

Per abilitare Remi Repository nel nostro server Centos:

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

Conferma che il repository remi è stato installato e abilitato con questo comando:

$ 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

Dovresti vedere i repository remi come parte dell'elenco.

Ora che il repository è stato installato, cerchiamo php. Usa questo comando:

$ 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

Dalla lista. possiamo vedere che quello predefinito è 7.2. Esecuzione di un dnf install php installerà il 7.2 che non vogliamo. Attiviamo il 7.4 usando questo comando:

sudo dnf module enable php:remi-7.4

Se per qualche motivo non funziona, puoi ripristinare il modulo esistente con questo comando:

sudo dnf module reset php

Ora che il repository è stato abilitato, installiamo php con questo comando:

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

Una volta di successo. conferma la versione installata con questo comando:

$ 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. Installazione di Nginx su Rocky Linux

Useremo Nginx per servire il contenuto PHP. Nginx, in quanto server web stabile ad alte prestazioni e con un consumo di risorse molto basso, è l'abbinamento perfetto per PHP-FPM. Nginx ha un'architettura asincrona molto più scalabile, basata sugli eventi.

Nginx è disponibile nei repository Rocky Linux/Alma Linu predefiniti. Installalo usando questo comando:

sudo dnf install -y nginx

Conferma l'installazione di nginx

$ 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

Il servizio non verrà avviato per impostazione predefinita. Per avviare Nginx, usa questo comando:

sudo systemctl start nginx

Conferma lo stato usando questo comando:

$ 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.

Per abilitare il servizio all'avvio, utilizzare questo comando systemd:

sudo systemctl enable nginx

4. Installazione di PHP FPM in Rocky Linux/Alma Linux 8

PHP-FPM (acronimo di FastCGI Process Manager) è un'implementazione FastCGI PHP (Hypertext Processor) alternativa estremamente popolare. PHP-FPM è l'implementazione alternativa più popolare di PHP FastCGI. Ha funzionalità aggiuntive che sono davvero utili per i siti Web ad alto traffico. Quando si utilizza Nginx con PHP-FPM, le prestazioni a livello di consumo di memoria sono migliorate.

PHP viene eseguito come servizio separato quando si utilizza PHP-FPM. Utilizzando questa versione di PHP come interprete linguistico, le richieste vengono elaborate tramite un socket TCP/IP; in modo che il server web Nginx gestisca solo le richieste HTTP e PHP-FPM interpreti il ​​codice PHP. Il fatto di avere due servizi separati è fondamentale per aumentare l'efficienza.

Installa php-fpm usando questo comando:

sudo dnf install -y php-fpm

Il servizio non verrà avviato per impostazione predefinita. Per avviarlo, usa questo comando systemd:

sudo systemctl start php-fpm

Controlla lo stato del servizio per confermare che sia in esecuzione utilizzando questo comando:

$ 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. Creazione di un sito semplice e configurazione dell'host virtuale

Nginx ti consente di servire più siti utilizzando host virtuali. Il concetto di host virtuali consente più di un sito Web su un sistema o server Web. I server si differenziano per il loro nome host. I visitatori del sito Web vengono indirizzati dal nome host o dall'indirizzo IP all'host virtuale corretto. L'hosting virtuale consente alle aziende che condividono un server di avere ciascuno il proprio nome di dominio.

In questo esempio, utilizzeremo il dominio site1.citizix.com per l'host virtuale, ma saremo liberi di utilizzare il dominio di tua scelta. Si noti che il DNS per il dominio da utilizzare dovrebbe essere già configurato per puntare all'indirizzo IP del server. Confermalo con:

dig -t A site1.citizix.com

Creazione di una directory e aggiunta di contenuto di esempio

La pagina predefinita di nginx è configurata come un host virtuale predefinito che serve contenuti da /var/www/html . È buona norma creare la directory del tuo sito in /var/www directory poiché è una buona pratica servire da lì.

Creiamo una directory per il nostro sito con il seguente comando:

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

Creiamo un semplice index.php pagina da servire dal nostro sito. Avrai bisogno di vim installato per farlo funzionare, altrimenti usa questo comando:

sudo dnf install -y vim

Modifica il file:

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

Aggiungi contenuto al file:

<?php phpinfo(); ?>

Creazione dell'host virtuale (blocchi del server)

Un server Nginx può essere utilizzato per incapsulare i dettagli di configurazione e ospitare più di un dominio su un singolo server. Creeremo un host virtuale per il nostro sito (site1.citizix.com).

Le configurazioni degli host virtuali Nginx sono archiviate nella directory /etc/nginx/conf.d/ . Creiamo una configurazione per il nostro sito:

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

Aggiungi il seguente contenuto

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;
    }
}

Riavviamo il servizio nginx e php-fpm per la configurazione da applicare

sudo systemctl restart php-fpm
sudo systemctl restart nginx

6. Testare la configurazione

Per testare la configurazione, apri il browser e carica il dominio che hai impostato. Nel mio caso è http://site1.citizix.com . Dovresti vedere la pagina delle informazioni php.

Se non hai ancora configurato le tue impostazioni DNS o semplicemente non vuoi che il sito sia ancora attivo, puoi modificare il file hosts del tuo computer. Per fare ciò, usa il seguente comando nella CLI del tuo computer locale

sudo vim /etc/hosts

Quindi, aggiungi l'indirizzo IP del tuo vero server seguito dal nome di dominio che stai configurando, ad esempio:

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

Ora dovresti essere in grado di salvare il file e accedervi da un browser web.

Conclusione

Host virtuali Nginx o server i blocchi sono un ottimo modo per aggiungere ulteriori siti Web allo stesso server di origine. Il numero di possibilità di configurazione per un determinato sito è quasi infinito quando inizi a modificare il file di configurazione dell'host virtuale per adattarlo alle esigenze specifiche del tuo sito.

In questa guida abbiamo imparato come configurare un host virtuale per servire contenuti php in Rocky Linux/Alma Linux o in un sistema basato su RHEL.


Rocky Linux
  1. Come installare WordPress con LEMP (Nginx, MariaDB e PHP) su Rocky Linux 8?

  2. Come installare Erlang su Rocky Linux/Alma Linux/CentOS 8

  3. Come installare e configurare PHP e Nginx (LEMP) su Ubuntu 20.04

  4. Come installare e configurare PHP e Nginx (LEMP) su OpenSUSE Leap 15.3

  5. Come configurare Laravel Bagisto con Nginx e PHP-FPM in Rocky Linux/Alma Linux 8

Come installare PHP 7.4 su Rocky Linux 8

Come installare Linux, Nginx, MariaDB e PHP (LEMP) su Fedora 22

Come installare PHP 8 su Rocky Linux 8

Come installare Nginx su Rocky Linux 8

Come installare Laravel su Rocky Linux 8

Come installare Nginx su Rocky Linux 9