Eu configurei um servidor nginx com php5-fpm. Quando tento carregar o site, recebo uma página em branco sem erros. Páginas HTML são servidas bem, mas não php. Eu tentei ativar display_errors no php.ini, mas sem sorte. O php5-fpm.log não está produzindo nenhum erro e nem o nginx.
nginx.conf
server {
listen 80;
root /home/mike/www/606club;
index index.php index.html;
server_name mikeglaz.com www.mikeglaz.com;
error_log /var/log/nginx/error.log;
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
EDITAR
aqui está o meu log de erro do nginx:
2013/03/15 03:52:55 [error] 1020#0: *55 open() "/home/mike/www/606club/robots.txt" failed (2: No such file or directory), client: 199.30.20.40, server: mikeglaz.com, request: "GET /robots.txt HTTP/1.1", host: "mikeglaz.com"
connect() failed ... fastcgi://127.0.0.1:9000
contradiz o seu nginx conf, recarrega o nginx conf?Respostas:
Para referência, estou anexando meu
location
bloco para captura de arquivos com a.php
extensão:Verifique duas vezes
/path/to/fastcgi-params
e verifique se ele está presente e legível pelo usuário nginx.fonte
substituir
com
e remova fastcgi_param SCRIPT_FILENAME ... no nginx.conf
fonte
.conf
tem uma configuração extra parâmetro faltando_params
./etc/init.d/nginx restart
) também o corrigiu no Debian Testing após umanginx
atualização em 10 de setembro de 2014.fastcgi_params
vsfastcgi.conf
: blog.martinfjordvald.com/2013/04/…Também tive esse problema e finalmente encontrei a solução aqui . Em resumo, você precisa adicionar a seguinte linha ao seu arquivo de configuração nginx fastcgi (/ etc / nginx / fastcgi_params no Ubuntu 12.04)
fonte
Muitos usuários se enquadram nesse segmento esperando encontrar uma solução para as páginas em branco serem exibidas ao usar nginx + php-fpm , sendo eu uma delas. Esta é uma recapitulação do que acabei fazendo depois de ler muitas das respostas aqui mais minhas próprias investigações (atualizadas no php7.2):
1) Abra
/etc/php/7.2/fpm/pool.d/www.conf
e verifique o valor do parâmetrolisten
.2) O parâmetro
listen
deve corresponder aofastcgi_pass
parâmetro no arquivo de configuração do site (i, e/etc/nginx/sites-enabled/default
:).3) Verifique se o arquivo realmente existe:
4) Se não existir, isso significa que o php7.2-fpm não está sendo executado, então você precisa reiniciá-lo:
Com relação à
location
seção em/etc/nginx/sites-enabled/default
:Verifique se o arquivo
snippets/fastcgi-php.conf
existe no local/etc/nginx/
:Este arquivo contém uma lista de definições de variáveis requeridas pelo php7.2-fpm. As variáveis são definidas diretamente ou através da inclusão de um arquivo separado.
Este arquivo está localizado em
/etc/nginx/fastcgi.conf
e se parece com:O nginx inclui dois arquivos de parâmetros possíveis: fastcgi_params e fastcgi.conf . A diferença entre ambos é a definição de variável
SCRIPT_FILENAME
:Para resumir uma longa história, o fastcgi.conf deve sempre funcionar. Se, por algum motivo, você estiver configurado usando fastcgi_params , defina
SCRIPT_FILENAME
:Agora recarregue a configuração do nginx:
E verifique se um arquivo php é exibido corretamente. Por exemplo:
/var/www/html/test.php
Onde
/var/www/html
está o caminho para a raiz do documento.Se, apesar de tudo isso, você ainda estiver vendo um arquivo em branco, verifique se o seu arquivo
php.ini
foishort_open_tag
ativado (se você estiver testando uma página PHP com tags curtas).fonte
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Finalmente o truque.Verifique se você tem isso em / etc / nginx / fastcgi_params
Quem sabe por que isso ainda não está lá? A quantidade de tempo que isso deve desperdiçar coletivamente!
fonte
Eu escrevi um programa C curto que retorna as variáveis de ambiente passadas do nginx para o aplicativo fastCGI.
Salve isso em um arquivo, por exemplo
fcgi_debug.c
Para compilá-lo, primeiro instale
gcc
elibfcgi-dev
, em seguida, execute:Para executá-lo, instale
spawn-fcgi
e execute:Então, mude sua configuração do nginx fcgi para apontar para o programa de depuração:
Reinicie o nginx, atualize a página e todos os parâmetros aparecerão no seu navegador para você depurar! :-)
fonte
apt-get install spawn-fcgi libfcgi-dev
.Essas dicas me ajudaram na instalação do Ubuntu 14.04 LTS,
Além disso, eu precisava para ligar o
short_open_tag
no/etc/php5/fpm/php.ini
fonte
Adicione isto em
/etc/nginx/conf.d/default.conf
:fonte
/etc/nginx/fastcgi_params
arquivo seria mais adequado, eu acho.Caso alguém tenha esse problema, mas nenhuma das respostas acima resolva seus problemas, eu estava tendo o mesmo problema e tive mais dificuldade em localizá-lo, pois meus arquivos de configuração estavam corretos, meus trabalhos ngnix e php-fpm estavam funcionando bem, e não houve erros nos logs de erros.
Erro idiota, mas nunca verifiquei a variável Short Open Tag no meu arquivo php.ini que foi definido como
short_open_tag = Off
. Desde que meus arquivos php estavam usando em<?
vez de<?php
, as páginas estavam aparecendo em branco. O Open Tag curto deveria ter sido definido comoOn
no meu caso.Espero que isso ajude alguém.
fonte
A razão pela qual esse problema ocorre é que as configurações do fastcgi no nginx não funcionam conforme necessário e, no local ou no processamento, elas respondem como dados html. Existem duas maneiras possíveis de configurar o seu nginx para evitar esse problema.
Método 1:
Método 2:
Ambos os métodos funcionariam corretamente; você pode prosseguir e usar qualquer um deles. Eles quase realizam as mesmas operações com uma diferença muito pequena.
fonte
Boa sorte
fonte
Nenhuma das respostas acima funcionou para mim - o PHP estava processando corretamente tudo, exceto as páginas que dependiam do mysqli, para as quais estava enviando uma página em branco com um código de resposta 200 e não gerando erros. Como estou no OS X, a correção foi simplesmente
sudo port install php56-mysql
seguido por uma reinicialização do PHP-FPM e nginx.
Eu estava migrando de uma configuração antiga do Apache / PHP para o nginx e não percebi a incompatibilidade de versão no driver para
php-mysql
ephp-fpm
.fonte
Eu tive um problema semelhante, o nginx estava processando uma página no meio do caminho e depois parando. Nenhuma das soluções sugeridas aqui estava funcionando para mim. Corrigi-o alterando o buffer nginx fastcgi:
Após as alterações, meu
location
bloco parecia:Para obter detalhes, consulte https://www.namhuy.net/3120/fix-nginx-upstream-response-buffered-temporary-file-error.html
fonte
Se você estiver recebendo uma tela em branco, isso pode ser devido a 2 razões:
Navegador impedindo a exibição dos quadros. Em alguns navegadores, os quadros são considerados inseguros. Para superar isso, você pode iniciar a versão sem moldura do phpPgAdmin
http://-your-domain-name-/intro.php
Você ativou um recurso de segurança no Nginx for X-Frame-Options e tente desativá-lo.
fonte
Isso resolveu meu problema:
fonte
Este é o meu vhost para UBUNTU 18.04 + apache + php7.2
A última linha a torna diferente das outras respostas.
fonte
Eu tive um erro semelhante, mas em combinação com o Nextcloud. Portanto, caso isso não funcione, tente: Consulte o manual do Nginx .
fonte