Я застрял, настраивая мой nginx для работы с пользовательскими программами cgi (используя библиотеку xmlrpc-c).
Я пытаюсь с fcgiwrap/spawn-fcgi вот так:
$ spawn-fcgi -f /usr/bin/fcgiwrap -s /tmp/fcgi.sock
Важный раздел файла nginx.conf будет
location /cgi-bin/test {
root /usr/share/nginx/html/cgi-bin/test/;
include /etc/nginx/fastcgi.conf;
#fastcgi_pass 127.0.0.1:8000;
fastcgi_pass unix:/tmp/fcgi.sock;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/cgi-bin/test$fastcgi_script_name;
}
Я пробовал как файлы soceket, так и комбинации ipv4/portnumber, но я получил ошибку:
2013/08/22 18:52:55 [notice] 1645#0: signal process started
2013/08/22 18:52:57 [crit] 1653#0: *1 connect() to unix:/tmp/fcgi.sock failed (13: Permission denied)
while connecting to upstream, client: 127.0.0.1, server: localhost,request: "POST /cgi-bin/test/listaccounta HTTP/1.1", upstream: "fastcgi://unix:/tmp/fcgi.sock:", host: "localhost", referrer: "http://localhost/some_page.php"
Я также иногда получаю 502 Bad Gateway, если возиться с вариантами. Я пробовал каждую комбинацию, которую мог найти в Google (включая изменение файла /etc/nginx/fastcgi.conf)(обратите внимание, что в nginx.conf есть отдельные разделы для php cgi и для моих тестовых программ, php работает нормально)
Я застрял и не знаю, как его настроить, я что-то упускаю?
эта часть особенно:
в nginx.conf
fastcgi_param SCRIPT_FILENAME /usr /share /nginx /html /cgi-bin /test /$ fastcgi_script_name; # не работает, сообщает об ошибке ниже
fastcgi_param SCRIPT_FILENAME /usr /share /nginx /html /cgi-bin /test /my_prog; #оно работает
Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or SCRIPT_FILENAME) set and is the script executable?
У меня есть более одной программы, как установить исполняемый файл, чтобы не было исправлено (как my_prog выше)?
Спасибо