Maison > développement back-end > tutoriel php > Pourquoi Nginx télécharge-t-il des fichiers .php au lieu de les exécuter et comment puis-je y remédier ?

Pourquoi Nginx télécharge-t-il des fichiers .php au lieu de les exécuter et comment puis-je y remédier ?

DDD
Libérer: 2024-12-05 02:37:09
original
1045 Les gens l'ont consulté

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

Nginx sert les fichiers .php en tant que téléchargements au lieu de les exécuter

Dans ce scénario, Nginx ne gère pas correctement les fichiers .php, les téléchargeant plutôt que les exécuter. Pour remédier à ce problème, certains ajustements de configuration doivent être effectués.

1. Décommentez les lignes d'écoute :

Modifiez /etc/nginx/sites-available/default pour permettre à Nginx d'écouter sur les ports IPv4 et IPv6 80 :

listen 80; ## listen for ipv4;
listen [::]:80 default_server ipv6only=on; ## listen for ipv6
Copier après la connexion

2 . Définir le nom du serveur :

Assurez-vous que le nom_serveur reflète le nom réel du serveur, tel que nom_serveur exemple.com ;.

3. Ajoutez index.php à la ligne d'index :

Dans la directive racine, ajoutez index.php à la liste des fichiers d'index :

root /var/www/html;
index index.php index.html index.htm;
Copier après la connexion

4. Décommentez le bloc d'emplacement PHP :

Décommentez le bloc d'emplacement ~ .php$ {} pour activer le traitement PHP :

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;
}
Copier après la connexion

5. Désactivez Pathinfo Fix dans php.ini :

Modifiez /etc/php5/fpm/php.ini et définissez cgi.fix_pathinfo = 0.

6. Redémarrez Nginx et PHP-FPM :

Redémarrez Nginx et PHP-FPM :

sudo service nginx restart && sudo service php5-fpm restart
Copier après la connexion

Configuration révisée :

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
            }
Copier après la connexion

Après avoir implémenté ces modifications, Nginx devrait exécuter correctement les fichiers .php.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal