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.