2016-12-29 1 views
0

Mon problème est assez simple.Nginx + php fastcgi montrant "Aucun fichier d'entrée spécifié." au lieu de 404

Lorsque je demande un fichier .php qui n'existe pas, je vois "Aucun fichier d'entrée spécifié.", Au lieu de la page 404 que vous attendez.

Je reçois que je passe toutes les demandes avec l'extension .php à php-fpm, et je suppose que php-fpm renvoie "Aucun fichier d'entrée spécifié." lorsque le fichier n'existe pas (?). Comment résoudre ce problème?

/etc/nginx/nginx.conf:

http { 
    server { 
      listen    443 ssl; 
      server_name   smarthome.dk; 
      ssl_certificate  /home/www/SmartHome/cert/ssl.crt; 
      ssl_certificate_key /home/www/SmartHome/cert/ssl.key; 
      ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
      ssl_ciphers   HIGH:!aNULL:!MD5; 
      keepalive_timeout 70; 

      root /home/www/SmartHome/public_html; 
      index index.php index.html; 

      location/{ 
        try_files $uri $uri/ /404.php?$args; 
      } 
      location ~ \.php$ { 
        fastcgi_pass unix:/var/run/php5-fpm.sock; 
        fastcgi_index index.php; 
        include fastcgi_params; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_intercept_errors on; 
      } 
    } 

Je cgi.fix_pathinfo = 0; en /etc/php5/fpm/php.ini.

Répondre

0

I figured it out

Vous devez ajouter try_files $uri $uri/ /404.php?$args;-location ~\.php$

Aucun fichier d'entrée est spécifié car le fichier n'existe pas, et est donc pas passé. try_files $uri $uri/ /404.php?$args; vérifie que le fichier existe réellement, sinon il redirige vers 404.php

+0

Acceptez votre réponse pour fermer la requête – Dayo

+0

@Dayo Vous devez attendre 2 jours avant de pouvoir accepter votre propre réponse. –