php-fpm retornando resposta vazia ao nginx

9

O nginx está se conectando ao php-fpm sobre fastcgi, usando o padrão /etc/nginx/fastcgi_paramsno bloco de localização.

Ao conectar-se a /.status (php-fpm.ini :: ping.path) na linha de comando cgi-fcgi -bind, o resultado volta como esperado (conjunto X-Powered-By, corpo de resposta, etc.).

Ao solicitar com nginx, o resultado volta vazio (conjunto X-Powered-By, sem comprimento ou conteúdo do corpo). O nginx retorna 200, pois obteve uma resposta "válida".

Observando tcpdump, isolei as solicitações de paridade em seus cabeçalhos FCGI (menos as variáveis ​​env relacionadas ao usuário ainda definidas pelo shell).

David Souther
fonte
Tente alterar para o usuário que o nginx executa como e execute novamente o teste cgi-fcgi -bind.
Some Linux Nerd
Eu sempre estrago as implantações de NRPE testando-as como raiz ... imaginei que você poderia ter feito o mesmo.
Some Linux Nerd

Respostas:

11

O factcgi_paramsarquivo padrão não contém a linha de chave para SCRIPT_FILENAME.

location ~ \.php$ {
                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

Adicione-o e reinicie o nginx.

shukshin.ivan
fonte
4

Bem, sua pergunta é um pouco vaga. A chamada "tela branca da morte" (WSOD) pode ser desencadeada por uma quantidade infinita de coisas. Mas algumas coisas que faço se me deparar com isso:

  • Ative o seguinte em seu php.ini:

    display_errors = 1
    display_startup_errors = 1
    error_log = /path/to/file
    error_reporting = -1 ; (the -1 activates absolutely everything)
    log_errors = 1
    
  • Ative em seu php-fpm.conf:

    error_log = /path/to/file
    
  • Ative para cada configuração de pool php-fpm:

    catch_workers_output = 1
    
  • Repita sua solicitação e verifique todos os logs (incluindo o log de erros do nginx)
  • Aumentar o nível de log (por exemplo, depuração no nginx)

Se nada disso ajudar a identificar o problema, publique as informações e configurações completas do sistema. Ninguém é capaz de lhe dar uma resposta precisa sem isso.

Triturador de Carne
fonte