Como configuro o soquete UNIX em nginx / HHVM?

2

Até agora, foi o que fiz:

$ less /etc/nginx/hhvm.conf
location ~ \.(hh|php)$ {
    fastcgi_pass   unix:/var/run/hhvm/sock;
    include        fastcgi_params;
}

$ less /etc/hhvm/server.ini
; php options

pid = /var/run/hhvm/pid

; hhvm specific 

hhvm.server.file_socket = /var/run/hhvm/sock
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc

Funcionou perfeitamente bem com a configuração correta da porta TCP, mas substituí-lo pelos resultados da configuração do soquete UNIX com o mesmo erro nginx que um erro de configuração da porta.

    
por Oxwivi 29.10.2015 / 17:39

1 resposta

2

Você deve verificar as permissões do arquivo.

O nginx deve ser capaz de gravar no soquete do php5-fpm ou hhvm do Unix.

Você provavelmente encontrará uma linha como essa dentro do log de erros do nginx /var/log/nginx/error.log , confirmando que esse é o problema:

2015/10/28 16:32:24 [crit] 14845#0: *1 connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "HEAD /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost"

Solução : Adicione o usuário nginx ao grupo do usuário que possui o soquete (geralmente www-data ). O arquivo de soquete deve ser gravável pelo grupo, então você deve seguir o seguinte comando:

# usermod -a -G www-data nginx
    
por 29.10.2015 / 21:20