LINUX.ORG.RU

Ошибка «Primary script unknown» Nginx + php7.0-fpm + Debian

 , ,


0

2

Добрый день. Помоги подружить nginx + php-fpm

Nginx установлен из репозитария разработчика, версия 1.14.0

php7.0-fpm установлен из репозитария дебиан.

Nginx работает и php-fpm тоже. Окно браузера отображает ошибку, когда запускаешь *.php

File not found

Ошибка в /var/log/nginx/error.log

*11 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.150, server: 192.168.0.142, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "192.168.0.142"
"

Фаил конфигурации /etc/nginx/conf.d/default.conf


server {
    listen       80;
    server_name  192.168.0.142;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
  }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           html;
        fastcgi_pass   unix:/run/php/php7.0-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
   }


    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

Фаил конфигурации /etc/nginx/fastcgi_params

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

Как правильно настроить этот код в /etc/nginx/conf.d/default.conf?

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

Спасибо.

Ответ на: комментарий от Jopich1

very funny

Пробовал. Решения не нашел. Предложенные манипуляции не работают.

SergeyF
() автор топика

Если задать вручную путь, например так:

fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;

И удалить строку из /etc/nginx/fastcgi_params

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

То *.php фаил видит и открывает. Но разработчик советует использовать именно:

$document_root

Подскажите, как настроить этот код? Спасибо.

SergeyF
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.