nginx e php-fpm “script principal desconhecido”

3

Cheira como uma duplicata, eu sei, mas agora tentei esta Configuração 5 Vezes, e ainda não consigo fazer isso funcionar. A maioria das configurações são complicadas com servidores chroot e multi, etc., mas reduzi isso agora para a configuração mais simples possível. Eu quero entender como o fpm é configurado com o nginx em sua forma mais simples ... Por favor, tenha paciência comigo.

Configuração atual:

  • CentOS 7 64 bits
  • nginx 1.8.0 do repositório Nginx
  • php 5.6 de Remi php56

Além do /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;
    }

Adição e alterações no /etc/php-fpm.d/www.conf

listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Adicionado o arquivo /usr/share/nginx/html/info.php

<?php phpinfo();?>

Iniciou os dois serviços

systemctl start nginx.service
systemctl start php-fpm.service

e finalmente tail -f /var/log/nginx/error.log

2015/11/09 12:18:01 [error] 28638#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: xx.xxx.xxx.xxx, server: localhost, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "xxx.xx.xxx.xx"

Parece que o FPM não consegue encontrar o script, isso eu consegui entender, mas de acordo com a configuração, o nome do arquivo Script é a raiz do documento e o nome do script. O nome do script é info.php e, de acordo com a configuração padrão, o caminho da raiz é:

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

Assim, se concatenar isso manualmente, obtenho

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

e este arquivo existe

#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

Alguém pode me explicar porque isso não está funcionando?

    
por Willem P. Botha 09.11.2015 / 13:38

1 resposta

3

$document_root precisa recuperar seu valor de uma diretiva root no mesmo local ou em um contêiner pai. Você parece ter root definido em um contêiner irmão. Mova root para o contêiner server .

    
por 09.11.2015 / 14:41