Для того, чтобы вышеописанные настройки работали правильно, создадим файл соккета (по идее, он должен создасться сам при первом дергании php-fpm, но мы все же создадим его на всякий случай):
touch /www/php-fpm.sock
# назначим правильные права
chown nginx:nginx /www/php-fpm.sock
chmod 600 /www/php-fpm.sock
Далее создадим директорию для PHP сессий и назначим ей правильные права:
mkdir /www/php-fpm-session
chown -R nginx:nginx /www/php-fpm-session
chmod -R 777 /www/php-fpm-session
Правим /etc/php.ini как вам угодно, но обязательно меняем значение 1 на 0 в строке:
cgi.fix_pathinfo = 0;
В своем php.ini я также установил временную зону:
date.timezone = Europe/Kiev
Пробуем запустить PHP-FPM и добавим в автозагрузку:
systemctl start php-fpm
systemctl enable php-fpm
P.S. для того чтобы перезапустить севрис PHP-FPM выполните команду:
systemctl restart php-fpm
Если все прошло успешно — радуемся, если нет — ищем ответы в гугле, или пишем комментарии сюда :), чем смогу тем помогу.
Для того, чтобы проверить, что у нас PHP работает как надо, раскоментируем (или добавим, если их там нет) строки в файле /etc/nginx/conf.d/test.com:
# cекция "location / {"
# Default location settings
location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$args;
rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
rewrite ^/(+?)-sitemap(+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
}
# секция location ~ \.php$ {
location ~ \.php$ {
# Prevent Zero-day exploit
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
fastcgi_pass unix:/www/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
и скормим последние изменения в nginx без перезапуска самого nginx:
nginx -s reload
А также создадим файл /www/test.com/public/index.php с таким вот содержимым:
<?php phpinfo(); ?>
Заходим из браузера по адресу test.com. Понятно, что доменное имя может быть каким угодно, каким вы его настроили, а если же у вас нет никакого доменного имени, то вы можете просто прописать DNS алиасы в своем hosts файле. Как настроить hosts в своей системе — ищите в гугле, или комментарий ниже.
Источник: https://tehnikaarenda.ru/pc/nginx-php-fpm-na-centos-7.html