Sei que esta é uma pergunta popular, mas não encontrei ninguém com o mesmo problema. Eu posso servir arquivos PHP desde que a extensão .php não esteja no URL. Por exemplo:
Se eu for localhost
, recebo meu arquivo index.php. Se eu for localhost/index.php
baixar o arquivo. Aqui está a minha configuração:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
#location /RequestDenied {
# proxy_pass http://127.0.0.1:8080;
#}
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;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
Estou bastante confuso com esse problema e me pergunto se alguém tem experiência no assunto.
php.ini
?Respostas:
Se isso estiver funcionando algumas vezes (para que você saiba que o PHP-FPM está funcionando), eu ficaria bem definido por ser um problema do nginx. Suspeito de algumas regras no seu bloco de localização do PHP. Eles podem estar quebrando em certos URLs, causando o despejo do nginx.
Você só precisa de 2 linhas para capturar índices de diretório:
Retire esse local, recarregue o nginx e veja o que acontece.
Se você precisar reescrever (URLs bonitas no Wordpress, etc), você deseja adicionar algo como isto
Mas faça isso apenas quando tiver URLs padrão funcionando.
fonte
Tinha esse mesmo problema, no entanto, eu também precisava dessa linha
Eu também tive
e teve que ter certeza de que foi atrás da localização
~ \.php$ {..}
fonte
include fastcgi.conf;
é quase o mesmo queinclude fastcgi_params;
inclui adicionalmentefastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
alguns usuários que incluem, eminclude fastcgi_params;
vez de.conf
incluir manualmente, na configuração de seus sites.