PHP-FPM funktioniert nicht mit Nginx

PHP-FPM funktioniert nicht mit Nginx

Server: CentOs x86_64

/etc/php-fpm.d/webuser1.conf

[webuser1]
listen = 127.0.0.1:9001
listen.allowed_clients = 127.0.0.1
user = webuser1
group = webuser1

pm = dynamic
pm.max_children = 15
pm.start_servers = 3
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 2000

request_slowlog_timeout = 5
slowlog = /home/webuser1/tmp/logs/webuser1.slow.log

php_admin_value[error_log] = /home/webuser1/tmp/logs/webuser1.error.log
php_admin_flag[log_errors] = on

/etc/nginx/conf.d/web1.conf

server {
listen       80;
server_name  c64p1.v.lab.gavika.com;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
    root   /home/webuser1/www/public;
    index  index.html index.htm index.php;
}

error_page  404              /404.html;
location = /404.html {
    root   /usr/share/nginx/html;
}

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}


# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9001;
    fastcgi_index  index.php;
#   fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

}

In den Nginx-Protokollen habe ich:

2013/05/18 15:21:52 [error] 2943#0: *1 FastCGI sent in stderr: "Primary script unknown"     while reading response header from upstream, client: 192.168.122.1, server: c64p1.v.lab.gavika.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "c64p1.v.lab.gavika.com"

Wie kann ich das zum Laufen bringen?

Antwort1

Sie haben Ihre rootAnweisungen an den falschen Stellen platziert.

rootsollte im serverBlock definiert werden, nicht in jedem locationBlock. Dies ist einer derdie häufigsten Nginx-Fehlkonfigurationen.

Um das Problem zu beheben, entfernen Sie alle rootAnweisungen aus jedem locationBlock und platzieren Sie die richtige rootAnweisung innerhalb des serverBlocks und nicht innerhalb eines location.

Antwort2

Können Sie uns mitteilen, welche Header Sie testen, die Ihnen diese Ergebnisse liefern? Es sieht so aus, als würden Sie nur eine Get root (/)-Anfrage über einen Browser ausführen?

Ohne weitere Informationen zu den Eingabe-Headern oder dazu, wie Sie Ihre Konfiguration testen, liegt höchstwahrscheinlich ein Standortproblem in Ihrer Konfiguration vor.

Meine beiden Ratschläge sind:

1) Schauen Sie sich die Hilfeseiten zu Nginx-Standorten an. Das Nginx-Wiki (http://wiki.nginx.org/Configuration) ist ein guter Ausgangspunkt. Auch Martin Fjordvalds Einführung (http://blog.martinfjordvald.com/2010/07/nginx-primer/) ist gut für Standortkonfigurationen.

2) Wenn ich ein Problem damit hätte, meine c64p1.v.lab.gavika.com-Konfiguration zum Laufen zu bringen, würde ich auf eine einfache Nginx-Konfiguration basierend auf einem Localhost-Server zurückgreifen und zuerst die Localhost-Konfiguration zum Laufen bringen.

verwandte Informationen