Здравствуйте.
Установил на один хост nginx, на второй - php-fpm. Хочу добиться исполнения php на втором.
В интернете много где рекомендуют установить значение параметра
cgi.fix_pathinfo=0 в файле php.ini. Если я это делаю, то при запросе страницы XXXXX.com/index.php получаю страницу с текстом
No input file specified, а в лог пишется:
[error] 31572#31572: *1 FastCGI sent in stderr: "Unable to open primary script: /var/www/XXXXX.com/html/index.php (No such file or directory)" while reading response header from upstream, client: XXX.XXX.X.XX, server: XXXXX.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://XXX.XXX.XXX.XX:9000", host: XXXXX.com ".
Если же я устанавливаю значение этого параметра
cgi.fix_pathinfo=1, то при запросе страницы XXXXX.com/index.php получаю сообщение
file not found.
Печаль в том, что я уже сутки не могу понять как лечить ни первое, ни второе. Надеюсь, кто-нибудь подскажет в чем ошибка.
Код сервера привожу ниже:
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/XXXXX.com.crt;
ssl_certificate_key /etc/ssl/XXXXX.com.key;
root /var/www/XXXXX.com/html;
index index.html index.htm index.nginx-debian.html;
server_name XXXXX.com www.XXXXX.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass XXX.XXX.XXX.XX:9000; #ip второго хоста(на котором php установлен)
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name XXXXX.com www.XXXXX.com;
return 301 https://XXXXX.com;
}