Nginx stellt .php-Dateien als Downloads bereit, anstatt sie auszuführen
In diesem Szenario behandelt Nginx .php-Dateien falsch und lädt sie herunter sie auszuführen. Um dieses Problem zu beheben, müssen bestimmte Konfigurationsanpassungen vorgenommen werden.
1. Kommentieren Sie Listen-Zeilen aus:
Ändern Sie /etc/nginx/sites-available/default, damit Nginx sowohl IPv4- als auch IPv6-Port 80 abhören kann:
listen 80; ## listen for ipv4; listen [::]:80 default_server ipv6only=on; ## listen for ipv6
2 . Servernamen festlegen:
Stellen Sie sicher, dass Servername den tatsächlichen Servernamen widerspiegelt, z. B. Servername example.com;.
3. Fügen Sie index.php zur Indexzeile hinzu:
Fügen Sie in der Root-Direktive index.php zur Liste der Indexdateien hinzu:
root /var/www/html; index index.php index.html index.htm;
4. Kommentieren Sie den PHP-Standortblock aus:
Entkommentieren Sie den location ~ .php$ {}-Block, um die PHP-Verarbeitung zu aktivieren:
location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+?\.php)(/.+)?$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
5. Pathinfo Fix in php.ini deaktivieren:
Bearbeiten Sie /etc/php5/fpm/php.ini und setzen Sie cgi.fix_pathinfo = 0.
6. Starten Sie Nginx und PHP-FPM neu:
Neustarten Sie Nginx und PHP-FPM:
sudo service nginx restart && sudo service php5-fpm restart
Überarbeitete Konfiguration:
server { listen 80; listen [::]:80 default_server ipv6only=on; root /var/www/html; index index.php index.html index.htm; # Make site accessible from http://example.com/ server_name example.com; location ~ \.php$ { try_files $uri $uri/ =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location / { try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules }
Nach der Implementierung dieser Änderungen sollte Nginx .php-Dateien korrekt ausführen.
Das obige ist der detaillierte Inhalt vonWarum lädt Nginx .php-Dateien herunter, anstatt sie auszuführen, und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!