Ich weiß, dass dies eine beliebte Frage ist, aber ich habe niemanden mit meinem ähnlichen Problem gefunden. Ich kann PHP-Dateien bereitstellen, solange die Erweiterung .php nicht in der URL enthalten ist. Zum Beispiel:
Wenn ich zu gehe, wird localhost
mir meine index.php-Datei zugestellt. Wenn ich zu gehe, localhost/index.php
lade ich die Datei herunter. Hier ist meine Konfiguration:
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;
}
}
Ich bin ziemlich verwirrt von diesem Thema und frage mich, ob jemand Erfahrung in dieser Angelegenheit hat.
php.ini
?Antworten:
Wenn dies manchmal funktioniert (Sie wissen also, dass PHP-FPM funktioniert), wäre ich ziemlich sicher, dass dies ein Nginx-Problem ist. Ich bin misstrauisch gegenüber einigen Regeln in Ihrem PHP-Standortblock. Sie könnten in bestimmten URLs brechen verursacht nginx auskippen.
Sie benötigen nur 2 Zeilen, um Verzeichnisindizes abzufangen:
Entfernen Sie diesen Speicherort zurück, laden Sie nginx neu und sehen Sie, was passiert.
Wenn Sie neu schreiben müssen (hübsche URLs in Wordpress usw.), möchten Sie so etwas hinzufügen
Tun Sie dies jedoch erst, wenn die Standard-URLs funktionieren.
quelle
Hatte das gleiche Problem, aber ich brauchte auch diese Leitung
Ich hatte auch
und musste sicherstellen, dass es nach Ort ging
~ \.php$ {..}
quelle
include fastcgi.conf;
ist fast das gleiche wieinclude fastcgi_params;
, schließt aber zusätzlich ein,fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
was einige Benutzer in ihre Site-Konfiguration einbeziehen,include fastcgi_params;
anstatt sie.conf
manuell einzubeziehen.