Chroot NginX et PHP5-FPM

Bonsoir,

Je suis entrain de m’auto-hebergé :wink:
Sur une Debian Jessie, j’ai donc installé nginx, et php5-fpm.

Mon problème est dans la configuration de php5-fpm, pour chrooter l’environnement.
Avec le fichier par défaut, nommé www.conf, je n’ai pas de soucis. Mon site est accessible et visible, mais non chrooté (si j’ai bien compris :wink: …)

Si je créé un fichier de pool pour mon nom de domaine et que j’applique celui-ci, par redémarrage du service php5-fpm, j’ai le droit à la fameuse erreur du fichier index inaccessible :

  • Est visible sur le site, le message suivant : No input file specified.
  • dans le log php5-fpm : [02-May-2015 00:27:49] WARNING: [pool stephane-huc.net] child 14256 said into stderr: “ERROR: Unable to open primary script: /srv/www/stephane-huc.net/www/index.php (No such file or directory)”
  • dans le log ‘access.log’, géré par nginx : 192.168.47.254 - - [02/May/2015:00:27:49 +0200] “GET / HTTP/1.1” 404 56 “-” "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0" <= Erreur 404
  • dans le log ‘error.log’, géré par nginx : 2015/05/02 00:27:49 [error] 13200#0: *7 FastCGI sent in stderr: “Unable to open primary script: /srv/www/stephane-huc.net/www/index.php (No such file or directory)” while reading response header from upstream, client: 192.168.47.254, server: stephane-huc.net, request: “GET / HTTP/1.1”, upstream: “fastcgi://unix:/var/run/php5-fpm.sock:”, host: “www.stephane-huc.net
  • dans le log ‘www.stephane-huc.net.access.log’, géré par la config du pool : - - 01/May/2015:22:27:49 +0000 “GET /index.php” 404 /srv/www/stephane-huc.net/www/index.php 0.584 256 0.00% <= Erreur 404 :wink:

Les fichiers du site web sont exactement au même endroit.
La racine de mon serveur est /srv/www/stephane-huc.net :

  • le site étant dans le répertoire sous-jacent, nommé www/
  • les logs sont dans un répertoire enfant, nommé logs/

Voici les droits sur les répertoires et le fichier index.php :

Il est clair que nous avons des droits +x sur tous les répertoires nécessaires, et que le fichier index.php est lisible. N’est-ce pas ?!
Là, les droits sont sur ‘root’, mais j’ai essayé avec ‘www-data’, (l’utilisateur de nginx, et aussi de celui de php5-fpm) : c’est pareil, le même problème !

Voici mon fichier de pool php5-fpm : paste.ubuntu.com/10965848/

Que n’aies-je pas compris ?

PS : En attendant, vu le besoin de dodo … le site est down :wink:

Salut,

[quote=“PengouinPdt”](No such file or directory) <= Erreur 404

Voici mon fichier de pool php5-fpm : paste.ubuntu.com/10965848/[/quote]

Ceci[mono]¹[/mono] [mono]chroot = /srv/www/stephane-huc.net/www¹[/mono] n’est-il pas interprété comme un [mono]fichier¹[/mono] et non un [mono]répertoire[/mono]. (/…/…/…/www[mono]/[/mono])

Complètes l’adresse du [mono]répertoire[/mono].

Merci à toi pour ta réponse rapide.

Malheureusement, cela ne semble pas changer quoi que ce soit - toujours cette erreur de fichier : No input file specified.

J’ai modifié légèrement la config du fichier pool : paste.ubuntu.com/10969096/

D’autant que les fichiers txt ou html sont servis.
Exemple :

Regardes peut-être par ici : How to Solve “No input file specified” with PHP and Nginx et là 5.4 Error: The page you are looking for is temporarily unavailable. Please try again later..

Le premier lien, je l’avais déjà lu :wink:
Merci aussi pour le second.

Malheureusement, je n’arrive à rien … Grrrr.
Je suis sûr qu’il y a un truc que je n’ai pas dû comprendre dans le chroot php-fpm … autrement, je ne vois pas quoi !

Bien, j’ai juste désactivé la commande lié au chroot par ‘;chroot’ dans mon fichier de config lié à PHP-FPM …
Et, bien sûr là, le site est fonctionnel !!!

Donc, c’est bien lié à celle-ci.
On progresse, non ?! (à coup de tâtonnements ! pffff …)

Bon, j’ai paramétré la variable chroot ainsi ‘chroot=/’ …
Et, cela semble fonctionner … sachant que la variable ‘prefix=/srv/www/stephane-huc.net/’

J’espère que je ne fais aucune erreur de configuration !

Sans être allé au fond des choses, j’aurais plutôt fait le contraire.

À savoir, commenter cette ligne [mono];prefix=/srv/www/stephane-huc.net/[/mono], voir même, ne pas la renseigné du tout.

Là, je crains que tu ne soit à la racine de ton système, sauf erreur et si je ne dis pas de connerie.
Et, renseigné la variable [mono]chroot[/mono] comme suit.

[mono]chroot = /srv/www/stephane-huc.net/www/[/mono] (Cf. comme dit précédemment.)

Non pas [mono]chroot =[strike]www/[/strike][/mono] comme vu dernièrement. (Cf. J’ai modifié légèrement la config du fichier pool)

Merci de ta réponse, néanmoins je crois que tu es dans l’erreur …

Je cite :

Comme le dit la notice d’information à-propos de PHP-FPM, il est intéressant de définir la variable ‘prefix’ … cela permet de gérer relativement d’autres variables, dont ‘chroot’ … mais je peux me tromper, :wink: