web-dev-qa-db-fra.com

nginx + php-fpm = Fichier introuvable

Lorsque j'essaie d'accéder à info.php J'ai un File not found. Erreur.

J'ai essayé certains tutoriels en vain.

Configurations: par défaut:

server {
    listen         80;
    listen   [::]:80 default ipv6only=on; 
    server_name  localhost;

    location / {
        root   /var/www;
        index  index.html index.htm index.php;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:7777;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
        fastcgi_buffers 256 128k;
        #fastcgi_buffer_size 16k;
        #fastcgi_busy_buffers_size 256k;
        fastcgi_connect_timeout 300s;
        fastcgi_send_timeout 300s;
        fastcgi_read_timeout 300s;
        include fastcgi_params;
    }
}

Quel est le problème?

18
user3652969

Si ce fichier info.php est dans/var/www, alors il est faux de demander à fast_cgi de rechercher

/usr/share/nginx/html/info.php;

Utilisez la même racine pour html et php. De plus, les paramètres root et index doivent se trouver en dehors d'un emplacement particulier, sauf pour des utilisations très spécifiques.

server {
   listen         80;
   listen   [::]:80 default ipv6only=on; 
   server_name  localhost;
   root   /var/www;
   index  index.html index.htm index.php;


   #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

   location ~ \.php$ {
       fastcgi_pass 127.0.0.1:7777;
       fastcgi_index  index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_buffers 256 128k;
       fastcgi_connect_timeout 300s;
       fastcgi_send_timeout 300s;
       fastcgi_read_timeout 300s;
       include fastcgi_params;
    }
}

inutile de dire que vous devez toujours vous assurer que votre service php-fpm écoute au port 7777. Le cas commun est de l'écouter au port 9000.

17
amenadiel

Si vous avez tout vérifié et qu'il est correctement configuré, il y a le dernier point que j'ai obtenu:

  • vérifiez ce nom d'utilisateur correct s'il est mentionné dans le fichier /etc/php-fpm.d/www.conf
10
Nazir

Nginx et liens symboliques

Remarque, si root /var/www; est un lien symbolique, changez-le en root /var/www/; sinon nginx ne dépassera pas le lien symbolique et vous obtiendrez un File not found Erreur

1
Jonathan
server {
listen         80;
listen   [::]:80 default ipv6only=on; 
server_name  localhost;
root   /var/www;
location / {
    index index.php;
}
location ~ \.php(?:$|/) {
   fastcgi_pass 127.0.0.1:7777;
   fastcgi_index  index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_buffers 256 128k;
   fastcgi_connect_timeout 300s;
   fastcgi_send_timeout 300s;
   fastcgi_read_timeout 300s;
   include fastcgi_params;
}

}

1
zy chen

J'ai jeté un long coup d'œil à cela, au final, il s'est avéré que FPM ne fonctionnait pas: -s dans mon cas, un simple redémarrage du service php7.2-fpm a fait l'affaire!

0
Michiel Auerbach

J'ai eu ce problème et aucune des réponses ici n'a fonctionné. Le problème pour moi a fini par être causé par SELinux. I désactivé SELinux et cela a résolu le problème.

Sachez que la désactivation de SELinux a un impact sur la sécurité. Il y a presque certainement une meilleure façon de résoudre ce problème, mais la désactivation de SELinux fonctionne à mes fins.

0
Joshua Walsh