我可以使用通常的tcp端口9000运行hhvm,但我希望nginx和hhvm通过unix套接字进行通信,但问题是套接字默认为root:root,我必须每次手动更改chown重新启动。我运行CentOS7的最小安装并且以前使用过php-fpm,但是您可以选择用于套接字的用户,但是看起来不是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.service
[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
答案 0 :(得分:0)
您可以在/etc/hhvm/server.ini
中指定用户,添加行
hhvm.server.user = nginx
如果需要,将nginx
更改为您的nginx用户,然后重新启动hhvm
sudo service hhvm restart
答案 1 :(得分:0)
您必须在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
这样做。