Page 1 sur 1

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

Publié : ven. 05 juin 2015, 22:02
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:

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

Publié : ven. 05 juin 2015, 22:27
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;
        }
    }

}

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

Publié : ven. 05 juin 2015, 23:01
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"


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

Publié : ven. 05 juin 2015, 23:07
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/

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

Publié : ven. 05 juin 2015, 23:18
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/

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

Publié : ven. 05 juin 2015, 23:22
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

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

Publié : ven. 05 juin 2015, 23:41
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 :)

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

Publié : ven. 05 juin 2015, 23:42
par benjarobin
:resolu:

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

Publié : sam. 06 juin 2015, 00:00
par Powlow
C'est la premiere chose que j'ai faite