1

Я застрял, настраивая мой 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 выше)?

Спасибо

1 ответ1

0

Похоже, у nginx нет прав на чтение / запись в сокет fastcgi:

2013/08/22 18:52:57 [crit] 1653#0: *1 connect() to unix:/tmp/fcgi.sock failed (13:             Permission denied)

Вы должны убедиться, что учетная запись пользователя, используемая для запуска nginx, может обращаться к файлу сокета, созданному fcgi. Они оба запущены как один и тот же пользователь?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .