root 拥有的 hhvm unix 套接字,但需要更改为 nginx
hhvm unix socket owned by root but need to change to nginx
我可以 运行 hhvm 使用通常的 tcp 端口 9000,但我希望 nginx 和 hhvm 通过 unix 套接字进行通信,但问题是套接字默认为 root:root,我必须每次重新启动时用 chown 手动更改它。我 运行 CentOS7 的最小安装并且以前使用过 php-fpm 但你可以选择 select user for socket 那里,但似乎不是在 hhvm 中,我不确定.有什么想法吗?
/etc/hhvm/server.ini
pid = /var/run/hhvm/pid
hhvm.server.ip = 127.0.0.1
;hhvm.server.port = 9000
hhvm.server.file_socket = /var/run/hhvm/hhvm.sock
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.source_root = /srv/www/public_html
hhvm.server.always_use_relative_path = false
hhvm.server.thread_count = 32
hhvm.resource_limit.max_socket = 65536
hhvm.jit = true
hhvm.jit_a_size = 67108864
hhvm.jit_a_stubs_size = 22554432
hhvm.jit_global_data_size = 22554432
; mysql
hhvm.mysql.socket = /var/lib/mysql/mysql.sock
hhvm.mysql.typed_results = true
; logging
hhvm.log.use_syslog = false
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.log.level = Warning
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
/usr/lib/systemd/system/hhvm.服务
[Unit]
Description=HipHop Virtual Machine (FCGI)
[Service]
ExecStart=/usr/local/bin/hhvm -c /etc/hhvm/server.ini -c /etc/hhvm/php.ini --user hhvm --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/hhvm.sock
[Install]
WantedBy=multi-user.target
您可以在 /etc/hhvm/server.ini
中指定用户,添加行
hhvm.server.user = nginx
如果需要,将 nginx
更改为您的 nginx 用户并重新启动 hhvm
sudo service hhvm restart
您必须在 HHVM 创建文件后手动更改文件所有权。
或者使用TCP模式代替unix sock。
在我的 Docker 中,我有这样的服务:
#!/bin/sh
set -e
# @todo this is horrible (but HHVM is creating socket as root user)
while [ ! -S /var/run/php5-fpm.sock ]
do
usleep 1
done
chown www-data /var/run/php5-fpm.sock
sv stop fix_socket_perms
这样做。
我可以 运行 hhvm 使用通常的 tcp 端口 9000,但我希望 nginx 和 hhvm 通过 unix 套接字进行通信,但问题是套接字默认为 root:root,我必须每次重新启动时用 chown 手动更改它。我 运行 CentOS7 的最小安装并且以前使用过 php-fpm 但你可以选择 select user for socket 那里,但似乎不是在 hhvm 中,我不确定.有什么想法吗?
/etc/hhvm/server.ini
pid = /var/run/hhvm/pid
hhvm.server.ip = 127.0.0.1
;hhvm.server.port = 9000
hhvm.server.file_socket = /var/run/hhvm/hhvm.sock
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.source_root = /srv/www/public_html
hhvm.server.always_use_relative_path = false
hhvm.server.thread_count = 32
hhvm.resource_limit.max_socket = 65536
hhvm.jit = true
hhvm.jit_a_size = 67108864
hhvm.jit_a_stubs_size = 22554432
hhvm.jit_global_data_size = 22554432
; mysql
hhvm.mysql.socket = /var/lib/mysql/mysql.sock
hhvm.mysql.typed_results = true
; logging
hhvm.log.use_syslog = false
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.log.level = Warning
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
/usr/lib/systemd/system/hhvm.服务
[Unit]
Description=HipHop Virtual Machine (FCGI)
[Service]
ExecStart=/usr/local/bin/hhvm -c /etc/hhvm/server.ini -c /etc/hhvm/php.ini --user hhvm --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/hhvm.sock
[Install]
WantedBy=multi-user.target
您可以在 /etc/hhvm/server.ini
中指定用户,添加行
hhvm.server.user = nginx
如果需要,将 nginx
更改为您的 nginx 用户并重新启动 hhvm
sudo service hhvm restart
您必须在 HHVM 创建文件后手动更改文件所有权。
或者使用TCP模式代替unix sock。
在我的 Docker 中,我有这样的服务:
#!/bin/sh
set -e
# @todo this is horrible (but HHVM is creating socket as root user)
while [ ! -S /var/run/php5-fpm.sock ]
do
usleep 1
done
chown www-data /var/run/php5-fpm.sock
sv stop fix_socket_perms
这样做。