1 FastCGI envoyé dans stderr: “script Principal inconnu”
Ma première fois avec Nginx, mais je suis plus familier avec Apache et Linux. Je suis à l'aide d'un projet existant, et si jamais je suis en train de voir le index.php j'obtiens une erreur 404 Fichier non trouvé.
Ici est l'accès.entrée de journal:
2013/06/19 16:23:23 [error] 2216#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.ordercloud.lh"
Et voici le sites-available fichier:
server {
# Listening on port 80 without an IP address is only recommended if you are not running multiple v-hosts
listen 80;
# Bind to the public IP bound to your domain
#listen 127.0.0.11:80;
# Specify this vhost's domain name
server_name www.ordercloud.lh;
root /home/willem/git/console/frontend/www;
index index.php index.html index.htm;
# Specify log locations for current site
access_log /var/log/access.log;
error_log /var/log/error.log warn;
# Typically I create a restrictions.conf file that I then include across all of my vhosts
#include conf.d/restrictions.conf;
# I've included the content of my restrictions.conf in-line for this example
# BEGIN restrictions.conf
# Disable logging for favicon
location = /favicon.ico {
log_not_found off;
access_log off;
}
# Disable logging for robots.txt
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# END restrictions.conf
# Typically I create a yiiframework.conf file that I then include across all of my yii vhosts
#include conf.d/yiiframework.conf;
# I've included the content of my yiiframework.conf in-line for this example
# BEGIN yiiframework.conf
# Block access to protected, framework, and nbproject (artifact from Netbeans)
location ~ /(protected|framework|nbproject) {
deny all;
access_log off;
log_not_found off;
}
# Block access to theme-folder views directories
location ~ /themes/\w+/views {
deny all;
access_log off;
log_not_found off;
}
# Attempt the uri, uri+/, then fall back to yii's index.php with args included
# Note: old examples use IF statements, which nginx considers evil, this approach is more widely supported
location / {
try_files $uri $uri/ /index.php?$args;
}
# END yiiframework.conf
# Tell browser to cache image files for 24 hours, do not log missing images
# I typically keep this after the yii rules, so that there is no conflict with content served by Yii
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 24h;
log_not_found off;
}
# Block for processing PHP files
# Specifically matches URIs ending in .php
location ~ \.php$ {
try_files $uri =404;
fastcgi_intercept_errors on;
# Fix for server variables that behave differently under nginx/php-fpm than typically expected
#fastcgi_split_path_info ^(.+\.php)(/.+)$;
# Include the standard fastcgi_params file included with nginx
include fastcgi_params;
#fastcgi_param PATH_INFO $fastcgi_path_info;
#fastcgi_index index.php;
# Override the SCRIPT_FILENAME variable set by fastcgi_params
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# Pass to upstream PHP-FPM; This must match whatever you name your upstream connection
fastcgi_pass 127.0.0.1:9000;
}
}
Mon /home/willem/git/console
est détenue par www-data:www-data (mon web utilisateur qui exécute php etc) et je l'ai donné en 777 autorisations de la frustration...
Quelqu'un peut-il conseiller?
quel est l'URL que vous essayez d'appeler ?
Je me sens comme les gens à serverfault serait mieux adaptée pour vous aider.
Configuration de php-fpm journal d'accès correctement. Il est important de %f est là, de sorte que vous pouvez voir le chemin du script, c'est d'essayer de l'exécuter. Essayez celui-ci:
C'est une défaillance de moyen de définir le format du journal, voici un exemple log_format principal '$remote_addr - $remote_user [$time_local] "$request" ' '$statut $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
essayez d'ajouter
Je me sens comme les gens à serverfault serait mieux adaptée pour vous aider.
Configuration de php-fpm journal d'accès correctement. Il est important de %f est là, de sorte que vous pouvez voir le chemin du script, c'est d'essayer de l'exécuter. Essayez celui-ci:
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
. Puis de publier les résultats dans votre question.C'est une défaillance de moyen de définir le format du journal, voici un exemple log_format principal '$remote_addr - $remote_user [$time_local] "$request" ' '$statut $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
essayez d'ajouter
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
OriginalL'auteur We0 | 2013-06-19
Vous devez vous connecter pour publier un commentaire.
Que le message du serveur fastcgi signifie généralement que la SCRIPT_FILENAME qu'elle a été donnée n'a pas été trouvé ou inaccessibles en tant que fichier sur son système de fichiers.
La caisse des autorisations de fichiers sur /home/willem/git/console/frontend/www/index.php
Est-il 644?
Et /home/guillaume/git/console/frontend/www/
Est-il 755?
quel est un moyen rapide de régler tous les répertoires et fichiers de manière récursive?
réponse ici: superuser.com/a/91938
Débogage des autorisations ou des liens symboliques avec cette astuce:
sudo -H -u www-data namei /srv/example.com/index.php
OriginalL'auteur Sergey Bogdanov
Au cas où quelqu'un a eu le même message d'erreur: dans mon cas, le problème était le manque de racine de la directive à l'intérieur de l'emplacement du bloc de nginx.conf, comme expliqué dans le wiki Arch
OriginalL'auteur flower_green
Ok, donc 3 choses que j'ai trouvé après une journée de lutte
changé 9001
en vertu de la stand pourquoi, car il ne devrait pas, mais je viens de dissocier, il
sites-enabled.
Espère que cela sauve quelqu'un certain ennui!
Plus en détail, voici le lien au serveur de faute: https://serverfault.com/questions/517190/nginx-1-fastcgi-sent-in-stderr-primary-script-unknown/517207#517207
OriginalL'auteur We0
"Script principal inconnu" est causée par de sécurité SELinux contexte.
client d'obtenir la réponse
nginx erreur.le journal a le message d'erreur suivant
donc il suffit de changer de contexte de sécurité type de dossier web racine de httpd_sys_content_t
il y a 3 utilisateurs pour nginx/php-fpm config
/etc/nginx/nginx.conf
/etc/nginx/serveurs/www.conf
/etc/php-fpm.d/www.conf
l'utilisateur 1 et utilisateur 2 n'est pas nécessaire d'être le même.
pour le socket unix de l'utilisateur-1 doivent être les mêmes que l'utilisateur 3,
comme nginx fastcgi_pass doit avoir l'autorisation de lecture/écriture sur la socket unix.
sinon nginx obtiendrez 502 Bad Gateway, et nginx erreur.le journal a le message d'erreur suivant
OriginalL'auteur PLA
Je ne sais pas comment l' $document_root est calculée, mais j'ai résolu le problème , par
vraiment faire en sorte que mon document root dans /usr/share/nginx/juste où le dossier html existent
OriginalL'auteur enRaiser