Linux - jak spouštět PHP přes FastCGI
Situace: Používáme Linux webserver s PHP 7, konkrétně používáme distribuci CentOS a balíček rh-php71-fpm. PHP je spouštěné jako modul webserveru Apache (Server API = Apache 2.0 Handler). Nyní chceme nastavit, aby PHP bylo obsluhované přes protokol FastCGI (Server API = FPM/FastCGI ) pomocí balíčku php-fpm (zde rh-php71-fpm), což nám přinese zrychlení zpracování PHP skriptů a zefektivnění výkonu (zpracuje se více webových požadavků).
Pokud je vše v pořádku, tak byste měli pomocí
yum install rh-php71-fpm
vim /etc/httpd/conf.modules.d/00-mpm.conf
(edit částí souboru)
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_worker_module modules/mod_mpm_worker.so
vim /etc/httpd/conf.d/php.conf
(obsah celého souboru)
<Proxy "unix:/var/run/php-fpm/default.sock|fcgi://php-fpm">
ProxySet disablereuse=off
</Proxy>
<FilesMatch \.php$>
SetHandler proxy:fcgi://php-fpm
</FilesMatch>
AddType text/html .php
DirectoryIndex index.php
vim /etc/opt/rh/rh-php71/php-fpm.d/www.conf
(edit částí souboru)
user = apache
group = apache
; listen = 127.0.0.1:9000
listen = /var/run/php-fpm/default.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
mkdir -p /var/run/php-fpm
systemctl enable rh-php71-php-fpm
systemctl restart rh-php71-php-fpm
systemctl httpd
Pokud je vše v pořádku, tak byste měli pomocí
phpinfo()
vidět Server API = FPM/FastCGI
.
Pokud se tim zabyvas budu rad za pripadne vysvetleni.