Nginx/php-fpm: различия между версиями
м (Elena Mishina переименовал страницу Nginx/php5-fpm в Nginx/php7-fpm: php5→php7) |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
[[Категория:Web]] | [[Категория:Web]] | ||
= Использование nginx и | = Использование nginx и php7-fpm = | ||
== Введение == | == Введение == | ||
Помимо описанного [[Nginx/fcgiwrap|варианта с {{pkg|spawn-fcgi}}]], возможно применение в качестве стартера FastCGI-скриптов на | Помимо описанного [[Nginx/fcgiwrap|варианта с {{pkg|spawn-fcgi}}]], возможно применение в качестве стартера FastCGI-скриптов на PHP7 штатного {{pkg|php7-fpm}} — говорят, для развесистых инсталяций более гибок и удобен. | ||
== Установка == | == Установка == | ||
Строка 11: | Строка 11: | ||
Устанавливаем пакеты (добавив и акселератор), можно сразу запускать FPM: | Устанавливаем пакеты (добавив и акселератор), можно сразу запускать FPM: | ||
apt-get install nginx | apt-get install nginx php7-fpm-fcgi php7-apcu | ||
chkconfig | chkconfig php7-fpm on | ||
service | service php7-fpm start | ||
Конфигурируем виртуальный хост — например, создаём файл {{path|/etc/nginx/sites-available.d/www.example.com.conf}}: | Конфигурируем виртуальный хост — например, создаём файл {{path|/etc/nginx/sites-available.d/www.example.com.conf}}: | ||
Строка 31: | Строка 30: | ||
try_files $uri =404; | try_files $uri =404; | ||
include /etc/nginx/fastcgi_params; | include /etc/nginx/fastcgi_params; | ||
fastcgi_pass unix:/var/run/ | fastcgi_pass unix:/var/run/php7-fpm/php7-fpm.sock; | ||
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/$fastcgi_script_name; | fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/$fastcgi_script_name; | ||
} | } | ||
Строка 60: | Строка 59: | ||
== Ссылки == | == Ссылки == | ||
* [[Nginx/fcgiwrap]] | * [[Nginx/fcgiwrap]] | ||
Версия от 13:38, 24 марта 2021
Использование nginx и php7-fpm
Введение
Помимо описанного варианта с spawn-fcgi, возможно применение в качестве стартера FastCGI-скриптов на PHP7 штатного php7-fpm — говорят, для развесистых инсталяций более гибок и удобен.
Установка
При развёртывании в контейнере OpenVZ обратите внимание на shmpages, иначе FPM может не стартовать:
vzctl set 101 --shmpages 256M --save
Устанавливаем пакеты (добавив и акселератор), можно сразу запускать FPM:
apt-get install nginx php7-fpm-fcgi php7-apcu chkconfig php7-fpm on service php7-fpm start
Конфигурируем виртуальный хост — например, создаём файл /etc/nginx/sites-available.d/www.example.com.conf:
server { listen *:80; server_name example.com www.example.com; location / { root /srv/www/www.example.com; } location ~ \.php$ { root /srv/www/www.example.com; try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php7-fpm/php7-fpm.sock; fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/$fastcgi_script_name; } location ~ /\.ht { deny all; } access_log /var/log/nginx/www.example.com-access.log; }
Делаем симлинк для подключения сделанной конфигурации:
ln -s ../sites-available.d/www.example.com.conf /etc/nginx/sites-enabled.d/
Старт
Запускаем (или reload'им уже запущенный) nginx:
chkconfig nginx on service nginx start
Проверка
Всё, можно проверять:
mkdir -p /srv/www/www.example.com echo '<?php phpinfo(); ?>' >> /srv/www/www.example.com/secr3t.php
И теперь идём по ссылке (разумеется, с исправленным доменом или подставленным IP): http://www.example.com/secr3t.php; если всё работает, не забываем убрать крайне полезный для потенциального атакующего файлик:
rm -f /srv/www/www.example.com/secr3t.php