@poimanoo

Nginx + php-fpm: почему file not found? почему No input file specified?

Здравствуйте.
Установил на один хост 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;
}
  • Вопрос задан
  • 1296 просмотров
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov Куратор тега PHP
Web developer
Файл /var/www/XXXXX.com/html/index.php должен находиться на втором хосте, а не первом.
По-моему, проще Nginx/PHP держать вместе на одном хосте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы