Comment réparer nginx 'aucun file d'input' lorsque le path d'access et les permissions sont correctes?

Je sais que c'est une question courante, mais je n'ai trouvé aucune discussion correspondant exactement à mon cas.

Le journal des erreurs nginx montre:

FastCGI a envoyé stderr: "Impossible d'ouvrir le script principal: /usr/share/nginx/drupal7/index.php

Mais:

  1. Ce path est correct, c'est la racine de mon site

  2. www-data a l'autorisation d'y accéder (si je fais su www-data puis cat /usr/share/nginx/drupal7/index.php le file est affiché).

  3. à la fois nginx root ET fpm/pool.d/myserver.conf chroot point dans le même dossier: /usr/share/nginx/drupal7

  4. www-data user et group ont 660 access à ce même dossier dans pool.d/myserver.conf

  5. ps -u www-data montre qu'il possède les process nginx et php5-fpm

  6. Je n'ai pas installé SElinux (car certaines discussions disent que ce pourrait être le problème)

Alors, pourquoi l'user www-data peut-il accéder à mon index.php mais pas FastCGI? Pourquoi FastCGI essaie-t-il le path correct, mais dit-il qu'il n'existe pas?

Vous avez une configuration chroot. Lorsque le process est en chroot, le path de la racine vers le script est comme ceci:

 /index.php 

Ainsi, vous devez modifier les paths utilisés avec les appels de script FastCGI afin qu'ils n'incluent pas le path d'access du directory complet au file de script.