Назад | Перейти на главную страницу

При подключении отказались ошибки в журналах nginx при попытке подключения к hhvm

На моем веб-сервере nginx в файле error.log много строк, подобных этой:

2017/12/30 20:30:00 [error] 5620#5620: *21 connect() to unix:/var/run/hhvm/hhvm.sock failed 
(111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, 
server: beauchamp.me, request: "GET /test.php HTTP/1.1", upstream: 
"fastcgi://unix:/var/run/hhvm/hhvm.sock:", host: "www.xxxxxxx.com"

и я не могу понять почему. Кажется, что hhvm постоянно дает сбой, поэтому мой сервер возвращается к использованию FPM для запуска страниц PHP.

hhvm version: HipHop VM 3.23.2 (rel) 
nginx version: nginx/1.12.2 
apache2 version: version: Apache/2.4.10 (Debian)   (used for FPM fallback) 
Linux version: Debian 8 (Jessie)

А вот моя конфигурация PHP для nginx:

location ~ \.(hh|php)$ {
    fastcgi_keep_conn on;
    proxy_intercept_errors on;
    error_page 502 = @fpm;

    # try_files $uri /index.php;
    include fastcgi_params;
    fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
}

location @fpm {
  # try_files $uri /index.php;
  include fastcgi_params;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_index index.php;
}

и разрешения для файла hhvm.sock:

root@Debian-82-jessie-64-LAMP /var/log/nginx # ls -als /var/run/hhvm/hhvm.sock
0 srwxrw---- 1 www-data www-data 0 Dec 30 18:43 /var/run/hhvm/hhvm.sock

Кстати, я предпочитаю использовать сокеты Unix, чем сокеты TCP.

ОБНОВИТЬ:

Вот содержимое моего файла hhvm server.ini:

; php options

pid = /var/run/hhvm/pid

; hhvm specific 

; hhvm.server.port = 9000
hhvm.server.file_socket=/var/run/hhvm/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/cache/hhvm/hhvm.hhbc

Вам нужно сделать два вещи:

  1. Настройте hhvm для прослушивания того же сокета, который вы указали в конфигурации nginx.
  2. Перезагрузите hhvm.