Пахнет дубликатом, я знаю, но сейчас я попробовал эту настройку 5 раз, и все равно не могу заставить ее работать. Большинство конфигураций сложны с chroot, несколькими серверами и т. Д., Но сейчас я свел это к простейшей возможной конфигурации. Я хочу понять, как настраивается fpm с nginx в простейшей форме ... Пожалуйста, потерпите меня.
Текущая настройка:
Дополнение к /etc/nginx/conf.d/default.conf
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Дополнение и изменения в /etc/php-fpm.d/www.conf
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Добавлен файл /usr/share/nginx/html/info.php
<?php phpinfo();?>
Запустили обе службы
systemctl start nginx.service
systemctl start php-fpm.service
и, наконец, tail -f /var/log/nginx/error.log
2015/11/09 12:18:01 [ошибка] 28638 # 0: * 1 FastCGI отправлен в stderr: "Основной сценарий неизвестен"при чтении заголовка ответа от восходящего потока, клиент: xx.xxx.xxx.xxx, сервер: localhost, запрос:" GET /info.php HTTP / 1.1 ", восходящий поток:" fastcgi: // unix: / var / run / php -fpm / php-fpm.sock: ", хост:" xxx.xx.xxx.xx "
Таким образом, кажется, что FPM не может найти сценарий, это мне удалось понять, но в соответствии с конфигурацией имя файла сценария - это корень документа и имя сценария. Имя скрипта - info.php, а в соответствии с конфигурацией по умолчанию корневой путь:
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
Таким образом, если я объединю это вручную, я получу
/usr/share/nginx/html/info.php
и этот файл существует
#ls -lah /usr/share/nginx/html/
total 20K
drwxr-xr-x 2 root root 4.0K Nov 9 12:35 .
drwxr-xr-x 3 root root 4.0K Apr 21 2015 ..
-rw-r--r-- 1 root root 537 Apr 21 2015 50x.html
-rw-r--r-- 1 root root 612 Apr 21 2015 index.html
-rw-r--r-- 1 root nginx 20 Nov 9 10:45 info.php
Кто-нибудь может дать мне объяснение, почему это не работает?
$document_root
необходимо получить свою ценность от root
директива в том же месте или в родительском контейнере. Кажется, у тебя есть root
определен в родственном контейнере. Шаг root
к server
контейнер.