Je sais que c'est une question populaire mais je n'ai trouvé personne avec mon problème similaire. Je peux servir des fichiers PHP tant que l'extension .php n'est pas dans l'url. Par exemple:
Si je vais à, localhost
je reçois mon fichier index.php. Si je vais sur localhost/index.php
je télécharge le fichier. Voici ma config:
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;
}
}
Je suis assez confus par cette question et je me demande si quelqu'un a de l'expérience en la matière.
php.ini
?Réponses:
Si cela fonctionne parfois (vous savez donc que PHP-FPM est en place et fonctionne), je serais plutôt prêt à ce qu'il s'agisse d'un problème nginx. Je me méfie de quelques règles de votre bloc de localisation PHP. Ils peuvent casser certaines URL provoquant le vidage de nginx.
Vous n'avez besoin que de 2 lignes pour intercepter les index de répertoire:
Supprimez cet emplacement, rechargez nginx et voyez ce qui se passe.
Si vous avez besoin de réécriture (jolies URL dans Wordpress, etc.) vous voulez ajouter quelque chose comme ça
Mais ne faites cela qu'une fois que les URL standard fonctionnent.
la source
Eu ce même problème, cependant, j'avais aussi besoin de cette ligne
J'avais aussi
et a dû s'assurer qu'il allait après l'emplacement
~ \.php$ {..}
la source
include fastcgi.conf;
est presque le même queinclude fastcgi_params;
mais inclut en outrefastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
que certains utilisateurs qui incluentinclude fastcgi_params;
au lieu d'.conf
inclure manuellement dans la configuration de leurs sites.