Сервер: 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;
}
}
В логах Nginx у меня есть:
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"
Как мне это сделать?
решение1
Вы разместили свои root
директивы в неправильных местах.
root
должно быть определено в server
блоке, а не в каждом location
блоке. Это один изнаиболее распространенные ошибки конфигурации nginx.
Чтобы решить эту проблему, удалите все root
директивы из каждого location
блока и поместите правильную root
директиву внутри server
блока, а не внутри какого-либо location
.
решение2
Можете ли вы поделиться тем, какие заголовки вы тестируете, что дает вам эти результаты? Похоже, вы просто делаете запрос Get root (/) через браузер?
Без дополнительной информации о входных заголовках или о том, как вы тестируете свою конфигурацию, скорее всего, вы столкнулись с проблемой местоположения в своей конфигурации.
Вот два моих совета:
1) Ознакомьтесь со справочными страницами по местоположению Nginx. Nginx Wiki (http://wiki.nginx.org/Конфигурация) — хорошее место, если вы начинаете. Также, учебник Мартина Фьордвальда (http://blog.martinfjordvald.com/2010/07/nginx-primer/) хорош в локационных конфигурациях.
2) Если бы у меня возникли проблемы с запуском конфигурации c64p1.v.lab.gavika.com, я бы вернулся к простой конфигурации Nginx на основе сервера localhost и сначала заставил бы работать конфигурацию localhost.