GNU/Linux >> Znalost Linux >  >> Linux

Jak nakonfigurovat Nginx pro práci s PHP přes PHP-FPM

Tento podrobný návod vám ukáže, jak nainstalovat a nakonfigurovat Nginx pro spouštění PHP na vašem serveru pomocí PHP-FPM.

Nginx + PHP je jednou z nejpopulárnějších softwarových skupin, které můžete použít k vytvoření svých webových stránek. Tento návod krok za krokem vám ukáže, jak nainstalovat a nakonfigurovat Nginx pro spouštění PHP na vašem serveru pomocí PHP-FPM.

Nginx je ideální kombinace s PHP-FPM. Je to stabilní webový server uznávaný pro svůj působivý výkon a nízkou spotřebu zdrojů.

PHP běží jako izolovaná služba, když používáte PHP-FPM. Použití této verze PHP jako jazykového tlumočníka znamená, že požadavky budou zpracovány přes UNIX socket. Server Nginx bude zpracovávat pouze požadavky HTTP, zatímco PHP-FPM interpretuje kód PHP.

1. Instalace Nginx

Ubuntu / Debian

Protože Nginx je k dispozici ve výchozích repozitářích Debianu a Ubuntu, je možná instalace z těchto úložišť pomocí balíčkovacího systému apt.

sudo apt install nginx

CentOS / AlmaLinux / Rocky Linux

Chcete-li získat nejnovější verzi Nginx, uživatelé CentOS, AlmaLinux nebo Rocky Linux musí nejprve nainstalovat úložiště EPEL.

EPEL (Extra Packages for Enterprise Linux) je open source a bezplatný projekt komunitního úložiště od týmu Fedora, který poskytuje vysoce kvalitní doplňkové softwarové balíčky pro linuxové distribuce založené na RHEL.

sudo yum install epel-release

Poté můžete nainstalovat server Nginx.

sudo yum install nginx

Fedora

Nginx je k dispozici ve výchozích repozitářích Fedory a lze jej nainstalovat přímo pomocí dnf správce balíčků.

sudo dnf install nginx

2. Instalace PHP-FPM

Ubuntu / Debian

Chcete-li nainstalovat PHP na Ubuntu nebo Debian, stačí spustit následující příkaz:

sudo apt install php-fpm

CentOS

Verze PHP dostupná ve výchozím nastavení na serverech CentOS je zastaralá. Z tohoto důvodu budeme muset nainstalovat úložiště balíčků třetích stran, abychom získali PHP 7.

CentOS 7

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm

CentOS 8

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm

3. Konfigurace NGINX pro spouštění PHP pomocí PHP-FPM

Jakmile jsou nainstalovány Nginx a PHP, můžeme nakonfigurovat Nginx tak, aby odesílal požadavky PHP na PHP-FPM.

Pro spuštění PHP s FPM budeme muset vytvořit konfigurační soubor bloku serveru Nginx. Poté můžete vytvořit nového virtuálního hostitele podle svých požadavků, čímž povolíte jakýkoli nový virtuální hostitel.

sudo vim /etc/nginx/sites-available/example.com

Nahraďte example.com s doménou nebo IP adresou vašeho webu a root s kořenovým adresářem vašeho webu.

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm;
        server_name example.com;
 
        location / {
            try_files $uri $uri/ =404;
        }
 
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }
}

Uložte změny do konfiguračního souboru a vytvořte odkaz na adresář povolený webem.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com 

Ujistěte se, že název souboru soketu PHP (v našem případě php7.4-fpm.sock ) specifikovaný v fastcgi_pass směrnice je správná.

ls -l /var/run/php/
total 4
-rw-r--r-- 1 root     root      5 Dec  1 17:43 php7.4-fpm.pid
srw-rw---- 1 www-data www-data  0 Dec  1 17:43 php7.4-fpm.sock
lrwxrwxrwx 1 root     root     30 Dec  1 17:43 php-fpm.sock -> /etc/alternatives/php-fpm.sock

Pokud se název liší od php7.4-fpm.sock , stačí jej nahradit ve výše zobrazeném bloku serveru aktuálním z vašeho serveru.

Poté restartujte službu Nginx a znovu načtěte změny.

sudo systemctl restart nginx.service

4. Testování nastavení

Vytvořte testovací soubor PHP, abyste ověřili, že PHP-FPM funguje a je integrováno s Nginx. Ve výše uvedeném bloku serveru je náš web obsluhován z /var/www/html , takže tam vytvoříme testovací soubor:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Nakonec přejděte na info.php z webového prohlížeče pomocí domény nebo IP adresy vašeho serveru. Měli byste vidět konfigurační stránku PHP:

Závěr

Gratulujeme! Nginx jste nastavili tak, aby zpracovával požadavky PHP prostřednictvím PHP-FPM.

Odtud můžete podniknout několik dalších kroků. Měli byste například zajistit, aby byla zabezpečena připojení k vašemu serveru. Ale jak to udělat?

Postupujte podle našeho podrobného návodu k získání bezplatného certifikátu Let’s Encrypt SSL pro váš server.


Linux
  1. Jak nakonfigurovat origin Cloudflare SSL s Nginx

  2. Jak nakonfigurovat vzdálené protokolové servery s rsyslog?

  3. Jak nainstalovat PHP 7.4 s Nginx na Ubuntu 20.04

  1. Jak povolit Nginx s PHP-FPM na Plesk

  2. Jak spustit více verzí PHP s Nginx na Ubuntu?

  3. Jak nainstalovat PHP-FPM s Apache na Ubuntu 20.04

  1. Jak nainstalovat WordPress s Nginx na CentOS 7

  2. Jak nainstalovat Drupal 8.1 s Nginx, PHP-FPM a SSL na Ubuntu 16.04

  3. Jak nakonfigurovat Nginx pro spouštění PHP pomocí PHP-FPM