J'ai heurté un mur lors de la configuration d'un site à l'aide de nginx / fpm. La page affiche "Fichier introuvable", et cela apparaît dans le nginx error.log:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
Je suis nouveau sur nginx et fpm, et ce message d'erreur ne signifie rien pour moi (même la machine Google n'a pas aidé!). Quelqu'un peut-il faire la lumière sur ce qui pourrait arriver?
SCRIPT_FILENAME
.Réponses:
Vous devriez avoir une
location
section pour gérer les requêtes PHP configurées de la même manière:(L'extra
try_files
corrige une vulnérabilité de sécurité qui pourrait permettre l'exécution de fichiers arbitraires en PHP.)De plus, votre
root
doit être défini dans laserver
section du fichier de configuration, pas dans lalocation
section. Il s'agit de l'une des erreurs de configuration de nginx les plus courantes .la source
Ceci est une note pour les installations des passagers.
Je viens d'installer nginx depuis la source via passager, ce qui a causé un problème avec php5-fpm. Le nginx.conf par défaut utilise le problème décrit par Michael Hampton. La solution est de supprimer le blok autour des directives root et index, donc:
devient:
De plus, le bloc php est mal configuré. Voir la réponse de Michael Hamptons pour savoir comment s'y prendre.
Une note supplémentaire pourrait être que si php5-fpm est configuré pour utiliser des sockets, pointez le paramètre fastcgi_pass dans le bloc php dans nginx.conf vers la configuration de socket dans /etc/php5/fpm/pool.d/www.conf.
la source
Je viens d'avoir ce problème dans une nouvelle version de nginx. (configuration tirée d'une ancienne version)
Ce que je devais faire était de placer le
include fastcgi_params;
dessus de ma coutumeSCRIPT_FILENAME
comme ceci:Comme le
SCRIPT_FILENAME
était écrasé.la source
Si vous utilisez des alias dans vos blocs d'emplacement, une erreur 404 non gérée peut également présenter ce comportement. Vous pouvez le voir si la page affichée dans le navigateur est le simple texte "Fichier non trouvé" par opposition à la page nginx 404 formatée (centrée) plus jolie. Essentiellement, cela signifie vraiment que la page 404 est introuvable.
Pour résoudre, ajoutez une
try_files $uri =404
ligne supplémentaire dans votre bloc d'emplacement et rechargez la configuration nginx. En plus de ce que Michael Hampton a dit à propos de la résolution d'une vulnérabilité de sécurité spécifique , cela permet également au gestionnaire fastcgi de remplacer la définition d'alias et de trouver le script 404 à l'emplacement par défaut.la source
à propos de la ligne 149, changer l'utilisateur php et le groupe d'utilisateurs
Je le teste maintenant avec succès.
la source
J'ai vu :
dans un serveur que j'ai placé sous forte charge lors des tests de résistance. Mon soupçon, qui reste à confirmer, est que les descripteurs de fichiers disponibles à partir du système d'exploitation ont été épuisés. Dans ce cas, php-fpm ne peut pas obtenir une référence au fichier.
Je me rends compte que c'est spéculatif, mais cela correspond certainement à mon scénario et pourrait également aider quelqu'un d'autre.
la source
la source