Heim > Backend-Entwicklung > PHP-Tutorial > Warum lädt Nginx .php-Dateien herunter, anstatt sie auszuführen, und wie kann ich das Problem beheben?

Warum lädt Nginx .php-Dateien herunter, anstatt sie auszuführen, und wie kann ich das Problem beheben?

DDD
Freigeben: 2024-12-05 02:37:09
Original
1046 Leute haben es durchsucht

Why is Nginx Downloading .php Files Instead of Executing Them, and How Can I Fix It?

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
Nach dem Login kopieren

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;
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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
Nach dem Login kopieren

Ü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 dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage