これまでのところ、これは私がやったことです:
$ 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
適切なTCPポート構成で問題なく動作しましたが、UNIXソケット構成で置き換えると、ポートの構成ミスと同じnginxエラーが発生します。
ファイルのアクセス許可を確認する必要があります。
nginxは、php5-fpmまたはhhvmUnixソケットに書き込むことができる必要があります。
おそらく、nginxエラーログ内にこのような行があります/var/log/nginx/error.log
、これが問題であることを確認します。
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"
ソリューション:ソケットを所有するユーザーのグループにnginx
ユーザーを追加します(通常はwww-data
)。ソケットファイルはグループによって書き込み可能である必要があるため、次のコマンドを使用するとよいでしょう。
# usermod -a -G www-data nginx