nginx + cgi (programas em c ++)

0

Estou preso ao configurar meu nginx para trabalhar com programas cgi personalizados (usando a biblioteca xmlrpc-c).
Eu estou tentando com fcgiwrap / spawn-fcgi assim:

$ spawn-fcgi -f /usr/bin/fcgiwrap -s /tmp/fcgi.sock

Seção importante do arquivo nginx.conf seria

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;

    }

Eu tentei ambos os arquivos de pesquisa e as combinações ipv4 / portnumber, mas recebi um erro:

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"

Eu também recebo o 502 Bad Gateway algumas vezes, se eu mexer nas opções. Eu tentei todas as combinações que consegui no google (inclui a modificação do arquivo /etc/nginx/fastcgi.conf) (note que há seções separadas no nginx.conf para php cgi e para meus programas de teste, o php funciona bem)
Estou preso e não sei como configurá-lo, estou perdendo alguma coisa?

esta parte especialmente:

em nginx.conf
    fastcgi_param SCRIPT_FILENAME / usr / share / nginx / html / cgi-bin / teste / $ fastcgi_script_name; # não funciona, relata erro abaixo
    fastcgi_param SCRIPT_FILENAME / usr / share / nginx / html / cgi-bin / teste / my_prog; #it funciona

Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or SCRIPT_FILENAME) set and is the script executable?  

eu tenho mais de um programa, como definir o executável para não ser corrigido (como my_prog acima)?

Obrigado

    
por kometonja 22.08.2013 / 19:12

1 resposta

0

Parece que o nginx não tem permissão para ler / escrever o socket fastcgi:

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

Você deve se certificar de que a conta de usuário usada para iniciar o nginx pode acessar o arquivo de soquete criado pelo fcgi. Ambos são lançados como o mesmo usuário?

    
por 22.08.2013 / 19:19