Ako nainštalovať a nakonfigurovať Nginx s PHP-FPM na CentOS 8


Tento návod existuje pre tieto verzie OS

  • CentOS 8
  • CentOS 7.6
  • CentOS 7
  • CentOS 6.4
  • CentOS 6.3
  • CentOS 6.2

Na tejto stránke

  1. Predpoklady
  2. Začíname
  3. Nainštalujte webový server Nginx
  4. Nainštalujte PHP a PHP-FPM
  5. Vytvorte indexovú stránku pre Nginx
  6. Nakonfigurujte Nginx pomocou PHP-FPM
  7. Otestujte Nginx s podporou PHP-FPM
  8. Záver

Nginx je bezplatný, open-source a jeden z najvýkonnejších webových serverov na svete. Používa sa najmä pre weby s vysokou záťažou a návštevnosťou. Nginx je známy svojou stabilitou, jednoduchou konfiguráciou a nízkou spotrebou zdrojov. Nginx môžete použiť ako webový server a reverzný proxy.

FPM je skratka pre FastCGI Process Manager je alternatívna implementácia PHP FastCGI PHP a používa sa pre webové stránky s vysokou návštevnosťou. Bežne sa používa s webovým serverom na obsluhu stránok PHP. PHP-FPM využíva menej pamäte a CPU v porovnaní s akýmkoľvek iným spôsobom spúšťania PHP. PHP-FPM je rýchlejší ako tradičné metódy založené na CGI pre prostredia PHP s viacerými používateľmi. PHP-FPM tiež umožňuje spustiť viacero verzií PHP súčasne.

Tento tutoriál nás naučí, ako nainštalovať Nginx s podporou PHP-FPM v CentOS 8.

Predpoklady

  • Server so systémom CentOS 8.
  • Na vašom serveri je nakonfigurované heslo používateľa root.

Začíname

V predvolenom nastavení je SELinux povolený na serveri CentOS 8. Preto ho budete musieť najskôr vypnúť.

Môžete to urobiť úpravou súboru /etc/selinux/config:

nano /etc/selinux/config

Vykonajte nasledujúce zmeny:

SELINUX=disabled

Uložte a zatvorte súbor. Potom reštartujte server, aby ste použili zmeny.

Nainštalujte webový server Nginx

Najprv nainštalujte webový server Nginx pomocou nasledujúceho príkazu:

yum install nginx -y

Po nainštalovaní Nginx spustite službu Nginx a povoľte jej spustenie pri zavádzaní pomocou nasledujúceho príkazu:

systemctl start nginx
systemctl enable nginx

Po dokončení môžete prejsť na ďalší krok.

Nainštalujte PHP a PHP-FPM

Ďalej nainštalujte PHP a PHP-FPM spustením nasledujúceho príkazu:

yum install php php-cli php-common php-fpm -y

Po nainštalovaní všetkých balíkov spustite službu PHP-FPM a povoľte jej spustenie po reštarte systému:

systemctl start php-fpm
systemctl enable php-fpm

Stav služby PHP-FPM môžete skontrolovať aj pomocou nasledujúceho príkazu:

systemctl status php-fpm

Mali by ste dostať nasledujúci výstup:

? 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 Thu 2019-10-17 05:39:11 EDT; 4min 40s ago
 Main PID: 1475 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 5060)
   Memory: 28.5M
   CGroup: /system.slice/php-fpm.service
           ??1475 php-fpm: master process (/etc/php-fpm.conf)
           ??1478 php-fpm: pool www
           ??1479 php-fpm: pool www
           ??1480 php-fpm: pool www
           ??1481 php-fpm: pool www
           ??1482 php-fpm: pool www

Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager...
Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.

Vytvorte indexovú stránku pre Nginx

Ďalej budete musieť vytvoriť vzorovú stránku info.php, aby ste otestovali, či Nginx používa PHP-FPM alebo nie.

Môžete vytvoriť súbor info.php v predvolenom koreňovom adresári dokumentu Nginx, ako je uvedené nižšie:

nano /var/www/html/info.php

Pridajte nasledujúce riadky:

<?php
    phpinfo();
?>

Po dokončení uložte a zatvorte súbor.

Ďalej zmeňte vlastníctvo súboru info.php na nginx:

chown -R nginx: /var/www/html/info.php/

Nakonfigurujte Nginx pomocou PHP-FPM

Ďalej budete musieť vytvoriť konfiguračný súbor virtuálneho hostiteľa Nginx a povoliť podporu PHP-FPM.

Môžete ho vytvoriť pomocou nasledujúceho príkazu:

nano /etc/nginx/conf.d/example.conf

Pridajte nasledujúce riadky:

server {
    listen 80;
    server_name example.com;
    root /var/www/html/;
    index info.php;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}

Uložte a zatvorte súbor. Potom otestujte Nginx na akúkoľvek chybu syntaxe pomocou nasledujúceho príkazu:

nginx -t

Ďalej povoľte súbor virtuálneho hostiteľa Nginx a reštartujte službu Nginx, aby ste použili konfiguráciu:

systemctl restart nginx

Otestujte Nginx s podporou PHP-FPM

Teraz otvorte webový prehliadač a zadajte adresu URL http://example.com. Budete presmerovaní na nasledujúcu stránku:

Na stránke vyššie by ste mali vidieť, že PHP-FPM je načítaný webovým serverom Nginx.

Záver

Gratulujem! úspešne ste nainštalovali Nginx s podporou PHP-FPM na server CentOS 8. Teraz môžete použiť PHP-FPM na hosťovanie viacerých webových stránok, ktoré používajú rôzne verzie PHP.