[nginx+php-fpm] Nginx + PHP, Erreur "File not found." (résolu)

Applications, problèmes de configuration réseau
Avatar de l’utilisateur
Powlow
Hankyu
Messages : 31
Inscription : lun. 04 août 2014, 16:25

[nginx+php-fpm] Nginx + PHP, Erreur "File not found." (résolu)

Message par Powlow »

Bonjour à tous,

J'essaie déséspérément de mettre en place un serveur LAMP sur mon install d'arch, mais ça semble être mission impossible...
Sur mon ancienne machine j'y étais arrivé parfaitement avec apache2 et php, mais maintenant ils disent partout d'utiliser php-fpm et d'autres trucs exotiques dont je n'ai jamais eu besoin (concretement, ça sert à quoi d'ailleurs ? Hein ? Pour 2 pauvres sites perso ?! ), et rien ne fonctionne.
J'ai tout d'abord essayé avec apache puis n'ayant pas réussi je me suis tourné vers nginx, mais pas mieux. Du coup, je me tourne vers vous... :chinois:

Du coup voilà, je vous passe ma config nginx :

/etc/nnginx/nginx.conf :

Code : Tout sélectionner

#user html;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
   access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;
	root /home/polo/www;
        #charset koi8-r;

        location / {
            #root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

	location ~ \.php$ {
      	fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
     	fastcgi_index  index.php;
      	#root   /srv/http;
      	include        fastcgi.conf;
 	}


}
Et dans mon fichier /etc/php/php-fpm.conf je n'ai touché qu'à la ligne listen = 127.0.0.1:9000.
J'ai essayé d'utiliser le /var/run/php-fpm/php-fpm.sock et de paramétrer nginx en conséquence, mais pas mieux...

Voilà l'erreur que j'obtiens lorsque je tente d'accéder à la page 127.0.0.1/lol.php (qui contient un <?php phpinfo(); ?> ) :
File not found.

Du coup, si vous avez un quelquonque conseil à me donner qui pourrait m'aider à résoudre le problème, je vous écoute, parce-que moi je suis psychologiquement à bout là :roll:
Dernière modification par Powlow le ven. 05 juin 2015, 23:42, modifié 1 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [nginx+php-fpm] Nginx + PHP, Erreur "File not found."

Message par benjarobin »

C'est pourtant tellement simple, j'ai voulu tester l'installation de ce couple juste pour tester, cela fonctionne très bien.
En gros j'ai fait juste ceci :

Code : Tout sélectionner

pacman -S nginx php-fpm
Ne surtout pas modifier la configuration par défaut de php-fpm qui fonctionne très bien

Code : Tout sélectionner

systemctl start php-fpm.service
Tu modifies la config de nginx pour activer php

Code : Tout sélectionner

        location ~ \.php$ {
            root           /chemin/ver/le/dossier/de/tes/fichiers/php;
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }

Code : Tout sélectionner

systemctl start nginx.service
Donc le plus simple est de défaire ce que tu as fait :

Code : Tout sélectionner

rm /etc/nginx/nginx.conf /etc/php/php-fpm.conf
pacman -S nginx php-fpm
Et si on reprend ta configuration cela donne juste ceci

Code : Tout sélectionner

#user html;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        root /home/polo/www;

        location / {
            index index.php index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        location ~ \.php$ {
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
    }

}
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Powlow
Hankyu
Messages : 31
Inscription : lun. 04 août 2014, 16:25

Re: [nginx+php-fpm] Nginx + PHP, Erreur "File not found."

Message par Powlow »

He bien j'ai tout refait exactement comme tu m'as dit.
Et j'ai toujours cette erreur de File Not Found... :-(

Est-ce vraiment nécéssaire de passer par php-fpm ?

EDIT ceci dit, avec la commande systemctl status nginx -l, j'obtiens des erreurs :

Code : Tout sélectionner

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since ven. 2015-06-05 23:04:24 CEST; 3min 4s ago
  Process: 14736 ExecStart=/usr/bin/nginx -g pid /run/nginx.pid; error_log stderr; (code=exited, status=0/SUCCESS)
 Main PID: 14737 (nginx)
   CGroup: /system.slice/nginx.service
           ├─14737 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr
           └─14738 nginx: worker process                                  

juin 05 23:04:24 ACERV7-LINUX systemd[1]: Starting A high performance web server and a reverse proxy server...
juin 05 23:04:24 ACERV7-LINUX systemd[1]: Started A high performance web server and a reverse proxy server.
juin 05 23:04:35 ACERV7-LINUX nginx[14736]: 2015/06/05 23:04:35 [error] 14738#0: *1 "/home/polo/www/index.php" is forbidden (13: Permission denied), client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "127.0.0.1"
juin 05 23:04:40 ACERV7-LINUX nginx[14736]: 2015/06/05 23:04:40 [error] 14738#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /lol.php HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/php-fpm.sock:", host: "127.0.0.1"
juin 05 23:04:42 ACERV7-LINUX nginx[14736]: 2015/06/05 23:04:42 [error] 14738#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /lol.php HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/php-fpm.sock:", host: "127.0.0.1"

Dernière modification par Powlow le ven. 05 juin 2015, 23:08, modifié 1 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [nginx+php-fpm] Nginx + PHP, Erreur "File not found."

Message par benjarobin »

Oui pour nginx, de plus c'est tellement plus simple. Tu fais forcément une énorme erreur !
Quelle est la sortie de :

Code : Tout sélectionner

ls -l /home/polo/www/lol.php
ls -ld /home/polo/www
ls -ld /home/polo/
ls -ld /home/
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Powlow
Hankyu
Messages : 31
Inscription : lun. 04 août 2014, 16:25

Re: [nginx+php-fpm] Nginx + PHP, Erreur "File not found."

Message par Powlow »

Respectivement :

Code : Tout sélectionner

-rwxrwxrwx 1 http http 20  5 juin  20:37 /home/polo/www/lol.php

Code : Tout sélectionner

rwxr-xr-x 2 http http 4096  5 juin  20:37 /home/polo/www

Code : Tout sélectionner

drwx------ 33 polo wheel 4096  5 juin  22:53 /home/polo/

Code : Tout sélectionner

drwxr-xr-x 5 root root 4096  3 juin  22:30 /home/
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [nginx+php-fpm] Nginx + PHP, Erreur "File not found."

Message par benjarobin »

Il y a comme un petit souci, cela ne pouvais pas fonctionner. Un petit rappel sur les droits unix : viewtopic.php?p=142064#p142064
Sinon c'est quoi cette horreur : le fichier .php en 777 ?
Il est par défaut interdit à tout processus de lire le contenu de ton home, ce qui est bien le cas de /home/polo/, pour des raisons évidentes de sécurité.
Il est donc conseillé de placer les fichiers ailleurs (par exemple /src/http ou /home/www)... Mais si tu veux quand même continuer dans cette voie, absolument non recommandée, il te suffit de faire :

Code : Tout sélectionner

chmod go+x /home/polo/
Puis je te conseil de corriger les droits sur les fichiers php :

Code : Tout sélectionner

chmod 644 *.php
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Powlow
Hankyu
Messages : 31
Inscription : lun. 04 août 2014, 16:25

Re: [nginx+php-fpm] Nginx + PHP, Erreur "File not found."

Message par Powlow »

Le 777 c'était pour les tests, afin d'éliminer un potentiel problème de droit d'accès au fichier.
Mais je pensais qu'en donnant les droits nécéssaires au dossier /home/polo/www, cela suffirait...

Du coup problème résolu, merci beaucoup pour ton aide :)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [nginx+php-fpm] Nginx + PHP, Erreur "File not found."

Message par benjarobin »

:resolu:
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Powlow
Hankyu
Messages : 31
Inscription : lun. 04 août 2014, 16:25

Re: [nginx+php-fpm] Nginx + PHP, Erreur "File not found."

Message par Powlow »

C'est la premiere chose que j'ai faite
Répondre