1 FastCGI geschickt in stderr: "Primäre Skript unbekannt"
Mein erstes mal mit Nginx, aber ich bin mehr als vertraut mit Apache und Linux. Ich bin mit einem bestehenden Projekt, und wenn überhaupt, ich bin Versuch zu sehen, die index.php ich bekomme einen 404-Datei nicht gefunden.
Hier ist der Zugang.log-Eintrag:
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"
Und hier ist der sites-available die Datei:
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;
}
}
Meine /home/willem/git/console
ist im Besitz von www-data:www-data (meine web-Benutzers ausgeführt, php etc) und ich habe ihm 777 Berechtigungen aus der frustration heraus...
Kann jemand beraten?
- was ist die URL, die Sie versuchen zu nennen ?
- Ich fühle mich wie die Leute bei serverfault wäre besser geeignet, um zu helfen.
- Setup der php-fpm log-Zugang korrekt. Es ist wichtig, %f ist, so können Sie sehen, den Pfad des Skripts ist es, die versuchen, um Sie auszuführen. Try this one:
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
. Dann die Ergebnisse posten Sie Ihre Frage. - Das ist eine ungültige Art und Weise der Einstellung des log-format, hier ist ein Beispiel log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
- versuchen Sie
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
- Sie erkennen, wir reden hier von php-fpm log-Zugang, richtig? Nicht nginx. Sie müssen sehen, was php-fpm denkt, dass es ausgeführt werden soll.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass die Nachricht von der fastcgi-server in der Regel bedeutet, dass die SCRIPT_FILENAME, dass es die gegeben wurde nicht gefunden oder kann nicht zugegriffen werden als Datei auf Ihr Dateisystem.
Checkout-Datei Berechtigungen auf /home/willem/git/console/frontend/www/index.php
Ist es 644?
Und /home/willem/git/Konsole/frontend/www/
Ist es 755?
sudo -H -u www-data namei /srv/example.com/index.php
Ok, also 3 Dinge, die ich gefunden nach einem Tag zu kämpfen
geändert 9001
unter stehen, warum, da es nicht sollte, aber ich habe einfach nicht verknüpfte es
Website-aktiviert.
Hoffe, das spart jemand einige Mühe!
Hier ist eine detailliertere link im server-Fehler: https://serverfault.com/questions/517190/nginx-1-fastcgi-sent-in-stderr-primary-script-unknown/517207#517207
In den Fall, jemand hatte den gleichen Fehler: in meinem Fall war das problem die fehlende root-Richtlinie innerhalb des location-block in der nginx.conf, wie im Arch-wiki
"Primäre Skript unbekannt" ist verursacht durch SELinux-Sicherheitskontext.
client die Antwort, die
nginx error.log hat folgende Fehler Meldung
so einfach ändern Sicherheitskontext Art von web-root-Ordner zu httpd_sys_content_t
es gibt 3 Benutzer nginx/php-fpm config
/etc/nginx/nginx.conf
/etc/nginx/servers/www.conf
/etc/php-fpm.d/www.conf
user-1 und user-2 ist nicht notwendig identisch sein.
für unix socket Benutzer-1 müssen die gleichen sein wie die Benutzer-3,
als nginx fastcgi_pass muss lese - /Schreibberechtigung auf den unix-socket.
sonst nginx erhalten 502 Bad Gateway, und nginx error.log hat folgende Fehler Meldung
Ich weiß nicht, wie das $document_root berechnet wird, aber ich habe das Problem gelöst , indem
wirklich sicher, dass mein document-root ist unter /usr/share/nginx/nur wher den html-Ordner vorhanden