Nginx + php-fpm = Файл не найден

Когда я пытаюсь получить доступ к info.php, я получаю ошибку File not found..

Я попробовал некоторые учебники безрезультатно.

Configs: по умолчанию:

server {
    listen         80;
    listen   [::]:80 default ipv6only=on; 
    server_name  localhost;

    location / {
        root   /var/www;
        index  index.html index.htm index.php;
    }

    # pass the PHP скриптs to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:7777;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
        fastcgi_buffers 256 128k;
        #fastcgi_buffer_size 16k;
        #fastcgi_busy_buffers_size 256k;
        fastcgi_connect_timeout 300s;
        fastcgi_send_timeout 300s;
        fastcgi_read_timeout 300s;
        include fastcgi_params;
    }
}

В чем проблема?

Ответ 1

Если этот info.php находится в /var/www, тогда неправильно указывать fast_cgi для поиска

/usr/share/nginx/html/info.php;

Используйте тот же корень для html и php. Кроме того, параметры root и index должны находиться за пределами определенного места, за исключением очень конкретных применений.

server {
   listen         80;
   listen   [::]:80 default ipv6only=on; 
   server_name  localhost;
   root   /var/www;
   index  index.html index.htm index.php;


   #pass the PHP скриптs to FastCGI server listening on 127.0.0.1:9000

   location ~ \.php$ {
       fastcgi_pass 127.0.0.1:7777;
       fastcgi_index  index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_buffers 256 128k;
       fastcgi_connect_timeout 300s;
       fastcgi_send_timeout 300s;
       fastcgi_read_timeout 300s;
       include fastcgi_params;
    }
}

Разумеется, вам все равно нужно убедиться, что ваша служба php-fpm прослушивает порт 7777. Обычный случай - прослушивать его на порту 9000.

Ответ 2

Если вы проверили все и правильно настроили, то есть последняя точка, которую я получил:

  • проверьте правильность имени пользователя, если указано в файле /etc/php-fpm.d/www.conf