Ich habe das gleiche Problem gesehen, und viele Auflösungen dafür deuteten darauf hin, den Typ-Handler hinzuzufügen, aber das war für Apache.
Ich verwende Arch Linux, Nginx, PHP und PHP-FMP und kann nicht herausfinden, warum PHP-Dateien heruntergeladen werden, anstatt ausgeführt zu werden.
Hier ist meine nginx.conf:
#user http;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm index.php;
}
#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 html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
try_files $uri =404;
root html;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
server {
listen 80;
server_name arch;
access_log /srv/http/arch/logs/access.log;
error_log /srv/http/arch/logs/error.log;
location / {
root /srv/http/arch/httpdocs;
index index.html;
}
}
}
Bearbeiten, um mime.types-Datei hinzuzufügen:
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/x-javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
image/svg+xml svg;
application/java-archive jar war ear;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.ms-excel xls;
application/vnd.ms-powerpoint ppt;
application/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream eot;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mpeg mpeg mpg;
video/quicktime mov;
video/x-flv flv;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}
nginx -V
undphp-fpm -m
?Antworten:
Anmerkung zum Hinzufügen:
Ich habe den gleichen Deal durchgemacht, aber nachdem ich den Fix angewendet habe, war die alte Tastenkombination Strg + Umschalt + R nicht gut genug, um den Cache des Browsers zu aktualisieren, dass es sich bei der Seite um einen Download handelt.
Nachdem der Cache gründlicher gelöscht wurde, funktionierte er wie erwartet.
quelle
Ich konnte dieses Problem beheben, aber das Problem, das ich hatte, schien damit zu zusammenhängen, dass ich immer noch Apache-Setup auf dem Server hatte, und ein Teil von Apache widersprach der Fähigkeit von Nginx, PHP-Seiten zu bedienen, obwohl Apache lief nicht.
Wenn Sie auf dasselbe Problem stoßen, versuchen Sie, Apache, PHP und alle zugehörigen Module zu entfernen und installieren Sie genau das, was Sie benötigen.
quelle
Enthält diese Datei etwas?
(einschließlich mime.types;)
Denn wenn nicht, erhalten alle Ihre Dateien den Mime / Typ einer Download-Datei
(default_type application / octet-stream;)
das ist also dein problem, weil php nicht auf der liste steht
Lösung: Fügen Sie diese Zeile zu dieser Datei hinzu und starten Sie ngnix neu
quelle
Beachten Sie, dass Ihre Konfiguration als ineffizient und möglicherweise unsicher gilt. Siehe https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
quelle
Mein Standort ~ .php sieht so aus. Warum versuchst du es nicht?
Gehe auch zu /etc/php/php-fpm.conf und versuche:
quelle
Führen Sie den folgenden Befehl aus:
Vergleichen Sie den folgenden Code mit Ihrer
default
Datei:Remove cache
von Ihrem Browserquelle