GNU/Linux >> Znalost Linux >  >> Rocky Linux

Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Rocky Linux/Alma Linux 8

PHP je univerzální skriptovací jazyk zaměřený na vývoj webových aplikací. Je to jeden z oblíbených programovacích jazyků pro web. Populární nástroje, jako je WordPress, jsou kódovány pomocí php. Velké společnosti jako Facebook také hojně využívají php.

Nginx je webový server, který lze také použít jako reverzní proxy, vyrovnávání zatížení, poštovní proxy a HTTP cache. Začalo to jako webový server navržený pro maximální výkon a stabilitu. Nginx od svého vydání vzrostl na popularitě díky nízkému využití zdrojů a schopnosti snadno škálovat na minimálním hardwaru. Nginx vyniká v rychlém poskytování statického obsahu a je navržen tak, aby dynamické požadavky předával jinému softwaru, který je pro tyto účely vhodnější.

Související obsah

  • Jak nainstalovat a nastavit PHP a Nginx (LEMP) na OpenSUSE Leap 15.3
  • Jak nainstalovat Apache PHP 7.4 (LAMP) stack na Rocky Linux/Centos 8
  • Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na Ubuntu 20.04
  • Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04
  • Jak nainstalovat a nastavit PHP a Apache (zásobník LAMP) na Debian 11
  • Jak nainstalovat a nastavit PHP a Nginx (LEMP) v Debianu 11

Obsah

  1. Zajištění aktuálnosti serveru
  2. Instalace PHP na Rocky Linux/Alma Linux 8
  3. Instalace Nginx na Rocky Linux/Alma Linux 8
  4. Instalace php-fpm v Rocky Linux/Alma Linux 8
  5. Vytvoření jednoduchého webu a konfigurace virtuálního hostitele
  6. Testování konfigurace

1. Zajištění aktuálnosti serveru

Než budete pokračovat, je vždy dobré se ujistit, že je server aktuální. K tomu použijte tyto příkazy

sudo df update -y

2. Instalace PHP na Rocky Linux/Alma Linux 8

Aby se soubory php mohly obsluhovat, musí být v systému nastaveno php. V této příručce nainstalujeme php 7.4.

PHP 7.4 zatím není k dispozici ve výchozích repozitářích. Remi Repository je perfektní úložiště pro instalaci php7.4. Remi repo je bezplatné a stabilní úložiště YUM hlavně pro zásobník PHP. Obsahuje balíčky pro nejnovější verze PHP.

Chcete-li povolit úložiště Remi na našem serveru Centos:

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

Potvrďte, že úložiště remi bylo nainstalováno a povoleno tímto příkazem:

$ 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

Měli byste vidět remi repozitáře jako součást seznamu.

Nyní, když je úložiště nainstalováno, pojďme hledat php. Použijte tento příkaz:

$ 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

Ze seznamu. můžeme vidět, že výchozí je 7.2. Provedení dnf install php nainstaluje 7.2 které nechceme. Povolme 7.4 pomocí tohoto příkazu:

sudo dnf module enable php:remi-7.4

Pokud z nějakého důvodu selže, můžete stávající modul resetovat tímto příkazem:

sudo dnf module reset php

Nyní, když je repo povoleno, nainstalujte php pomocí tohoto příkazu:

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

Jednou úspěšný. potvrďte nainstalovanou verzi tímto příkazem:

$ 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. Instalace Nginx na Rocky Linux

K poskytování obsahu PHP použijeme Nginx. Nginx jako stabilní vysoce výkonný webový server s velmi nízkou spotřebou zdrojů se perfektně hodí pro PHP-FPM. Nginx má asynchronní architekturu, která je mnohem škálovatelnější na základě událostí.

Nginx je k dispozici ve výchozím repozitáři Rocky Linux/Alma Linu. Nainstalujte jej pomocí tohoto příkazu:

sudo dnf install -y nginx

Potvrďte nainstalovaný 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

Služba se ve výchozím nastavení nespustí. Chcete-li spustit Nginx, použijte tento příkaz:

sudo systemctl start nginx

Potvrďte stav pomocí tohoto příkazu:

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

Chcete-li službu povolit při spouštění, použijte tento příkaz systemd:

sudo systemctl enable nginx

4. Instalace PHP FPM v Rocky Linux/Alma Linux 8

PHP-FPM (zkratka pro FastCGI Process Manager) je velmi oblíbená alternativní implementace FastCGI PHP (Hypertext Processor). PHP-FPM je nejoblíbenější alternativní implementací PHP FastCGI. Má další funkce, které jsou opravdu užitečné pro weby s vysokou návštěvností. Při použití Nginx s PHP-FPM se zlepší výkon na úrovni spotřeby paměti.

Při použití PHP-FPM běží PHP jako samostatná služba. Při použití této verze PHP jako jazykového tlumočníka jsou požadavky zpracovávány přes TCP/IP soket; takže webový server Nginx zpracovává pouze požadavky HTTP a PHP-FPM interpretuje kód PHP. Skutečnost, že máme dvě samostatné služby, je klíčem ke zvýšení efektivity.

Nainstalujte php-fpm pomocí tohoto příkazu:

sudo dnf install -y php-fpm

Služba se ve výchozím nastavení nespustí. Chcete-li jej spustit, použijte tento příkaz systemd:

sudo systemctl start php-fpm

Zkontrolujte stav služby a ověřte, že je spuštěna, pomocí tohoto příkazu:

$ 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. Vytvoření jednoduchého webu a konfigurace virtuálního hostitele

Nginx vám umožňuje obsluhovat více webů pomocí virtuálních hostitelů. Koncept virtuálních hostitelů umožňuje více než jeden web na jednom systému nebo webovém serveru. Servery se rozlišují podle názvu hostitele. Návštěvníci webu jsou směrováni podle názvu hostitele nebo adresy IP na správný virtuální hostitel. Virtuální hosting umožňuje společnostem sdílejícím jeden server, z nichž každý má své vlastní názvy domén.

V tomto příkladu použijeme doménu site1.citizix.com pro virtuálního hostitele, ale můžeme volně používat doménu dle vašeho výběru. Upozorňujeme, že DNS pro doménu, která má být použita, by již měla být nakonfigurována tak, aby ukazovala na IP adresu serveru. Potvrďte to pomocí:

dig -t A site1.citizix.com

Vytvoření adresáře a přidání ukázkového obsahu

Výchozí stránka nginx je nakonfigurována jako výchozí virtuální hostitel poskytující obsah z /var/www/html . Nejlepším postupem je vytvořit adresář vašeho webu v /var/www adresáře, protože je nejlepším postupem obsluhovat odtud.

Vytvořte adresář pro naše stránky pomocí následujícího příkazu:

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

Pojďme vytvořit jednoduchý index.php stránku, která má sloužit z našeho webu. Aby to fungovalo, budete potřebovat nainstalovaný vim, pokud nepoužijete tento příkaz:

sudo dnf install -y vim

Upravte soubor:

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

Přidejte obsah do souboru:

<?php phpinfo(); ?>

Vytvoření virtuálního hostitele (bloky serveru)

Bloky serveru Nginx lze použít k zapouzdření podrobností o konfiguraci a hostování více než jedné domény na jednom serveru. Chystáme se vytvořit virtuálního hostitele pro naše stránky (site1.citizix.com).

Konfigurace virtuálních hostitelů Nginx jsou uloženy v adresáři /etc/nginx/conf.d/ . Pojďme vytvořit konfiguraci pro náš web:

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

Přidejte následující obsah

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

Restartujme službu nginx a php-fpm, aby se konfigurace uplatnila

sudo systemctl restart php-fpm
sudo systemctl restart nginx

6. Testování konfigurace

Chcete-li otestovat konfiguraci, otevřete prohlížeč a načtěte doménu, kterou jste nastavili. V mém případě je to http://site1.citizix.com . Měli byste vidět informační stránku php.

Pokud jste ještě nenakonfigurovali nastavení DNS nebo jednoduše nechcete, aby byl web ještě spuštěn, můžete upravit soubor hostitelů svého počítače. Chcete-li to provést, použijte následující příkaz v CLI místního počítače

sudo vim /etc/hosts

Poté přidejte IP adresu vašeho skutečného serveru následovanou názvem domény, kterou konfigurujete, například:

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

Nyní byste měli být schopni uložit soubor a přistupovat k němu z webového prohlížeče.

Závěr

Virtuální hostitelé Nginx nebo server bloky jsou skvělým způsobem, jak přidat další webové stránky na stejný původní server. Počet konfiguračních možností pro daný web je téměř nekonečný, když začnete upravovat konfigurační soubor virtuálního hostitele tak, aby vyhovoval vašim specifickým potřebám vašeho webu.

V této příručce jsme se naučili, jak nastavit virtuálního hostitele pro poskytování obsahu php v systému Rocky Linux/Alma Linux nebo RHEL.


Rocky Linux
  1. Jak nainstalovat WordPress s LEMP (Nginx, MariaDB a PHP) na Rocky Linux 8?

  2. Jak nainstalovat Erlang na Rocky Linux/Alma Linux/CentOS 8

  3. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04

  1. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na OpenSUSE Leap 15.3

  2. Jak nastavit Laravel Bagisto s Nginx a PHP-FPM v Rocky Linux/Alma Linux 8

  3. Jak nainstalovat a nakonfigurovat Memcached na Rocky Linux/Alma Linux 8

  1. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Debian 11

  2. Jak nainstalovat FFmpeg na Rocky Linux/Alma Linux 8

  3. Jak nainstalovat PHP 8 na Alma Linux &Rocky Linux