Passei horas descobrindo como instalar o Nginx + Ruby Enterprise Edition + PHP5-fpm e MYSQL, finalmente tudo está instalado e tudo parece ter começado bem.
Mas, por algum motivo, os arquivos php não estão sendo processados.
Os arquivos .html funcionam bem, mas quando tento visualizar um arquivo .php, parece que ele não existe, mesmo que exista. Curiosamente, quando tento visualizar um arquivo .html que não existe, recebo uma boa mensagem do Nginx 404, mas quando visualizo um arquivo .php, ele nem me dá isso.
Então, para meu entendimento iniciante, parece que há algo errado com a configuração ou o Nginx e o PHP-fpm não estão falando um com o outro.
Eu estive analisando muitos outros exemplos de arquivos de configuração do nginx e tenho certeza de que tudo está bem. Bem ... aqui está a parte relevante do arquivo conf:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name;
include fastcgi_params;
}
E
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
Qualquer ajuda é muito apreciada.
edit : Aqui estão os cabeçalhos retornados do arquivo php de teste " http://eman.id.au/test.php ":
HTTP/1.1 404 Not Found =>
Server => nginx/0.8.54
Date => Thu, 16 Dec 2010 19:30:30 GMT
Content-Type => text/html
Connection => close
X-Powered-By => PHP/5.3.2-1ubuntu4.5ppa5~lucid1
Se você der uma olhada nos cabeçalhos, http://eman.id.au/test.php responde e você verá
X-Powered-By: PHP/5.3.2-1ubuntu4.5ppa5~lucid1
. Não mostraria isso se a solicitação não fosse passada para o PHP. Além disso, se o PHP não conseguir encontrar o caminho do arquivo passado, ele repetirá o erroNo input file specified.
Como o site gera o cabeçalho powered by e não possui o
No input file specified.
erro, o motivo mais provável é que você possui um erro no script PHP e os erros de exibição estão desativados. Isso resulta em uma página em branco e uma entrada no seu log de erros; portanto, dê uma olhada e verifique se não está sendo preenchido.fonte
Par de pensamentos:
Isso precisa de uma barra extra
O NGINX também possui um pouco de cache estranho; portanto, quando você tentar o URL no seu navegador, adicione um? Random = 12391 ao final para forçar uma atualização. Fiquei intrigado por 30 minutos em uma configuração apenas para descobrir que estava funcionando o tempo todo, mas estava sendo tropeçado pelo cache.
Você provavelmente também deseja escapar um pouco melhor da sua localização (embora isso não esteja causando o problema que você está tendo). É uma prática melhor:
para
.php $ corresponderia a uma solicitação como yourpagephp em vez de apenas yourpage.php
fonte