我想设置一个运行HHVM的虚拟主机来尝试新的“Facebook Hack”语言。 我遵循Apache 2.2的说明: https : //github.com/facebook/hhvm/wiki/FastCGI
目前hhvm是这样运行的:
hhvm -ms -vServer.Type = fastcgi -vServer.Port = 9001
而我的虚拟主机configuration是:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /home/tijmen/sites/example.com php_value engine off #<IfModule fastcgi_module> Alias /hhvm.fastcgi /home/tijmen/sites/example.com/hhvm.fastcgi FastCGIExternalServer /home/tijmen/sites/example.com/hhvm.fastcgi -host 127.0.0.1:9001 <Directory "/home/tijmen/sites/example.com/"> <Files "hhvm.fastcgi"> Order deny,allow </Files> </Directory> RemoveHandler .php AddHandler hhvm-hack-extension .hh AddHandler hhvm-php-extension .php Action hhvm-hack-extension /hhvm.fastcgi virtual Action hhvm-php-extension /hhvm.fastcgi virtual #</IfModule> ErrorLog /home/tijmen/sites/log/example.com-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel debug CustomLog /home/tijmen/sites/log/example.com.log combined </VirtualHost>
目录/home/tijmen/sites/example.com设置为chmod 777以确保它是可写的。 一旦这个工作会更安全。
然而,example.com/index.hh(存在于/home/tijmen/sites/example.com/index.hh)返回404。日志中没有任何地方可以找出错误。
接下来让这个东西运行,我想知道这是什么hhvm.fastcgi文件。 我必须手动创build它吗? 它甚至是一个物理文件? 也许甚至是一个目录?
我也在这里问我的问题,但问题是closures的: https : //github.com/facebook/hhvm/issues/2137
在我的情况下,我不得不将RemoveHandler .php
更改为:
<FilesMatch "\.ph(p3?|tml)$"> SetHandler None </FilesMatch> <FilesMatch "\.phps$"> SetHandler None </FilesMatch>
我也有这个问题; 我也使用-host而不是-socket(我找不到hhvm正在创build它的sock文件)…
关于你的关于“/hhvm.fastcgi”的问题:这是别名的名字; 把它想象成一个variables。 你可以重新命名为任何你想要的。 在你的情况下,它只是让你不必多次使用“/home/tijmen/sites/example.com/hhvm.fastcgi”。 来源: https : //httpd.apache.org/docs/2.2/mod/mod_actions.html#page-header
(2014-03-23) 更新:
我认为在HHVM中有一个错误。 在提交之前,我需要testing更多,但是我得到的应用程序不需要404就可以提供* .php文件。
我对解决方法不满意,但是这里是:
编辑/etc/init.d/hhvm-fastcgi中的run-as-uservariables以root身份运行。 30号线:
# RUN_AS_USER="www-data" RUN_AS_USER="root"
作为参考,这里是我的网站的底部conf:
<IfModule mod_fastcgi.c> RemoveHandler应用程序/ x-httpd-php #FastCGIExternalServer /apache-data/hack/.virtual -socket /apache-data/hack/hhvm.sock -pass-header授权-idle-timeout 300 FastCGIExternalServer /apache-data/hack/.virtual -host 127.0.0.1:9000 -pass-header授权-idle-timeout 300 AddHandler hhvm-hack-extension .hh AddHandler hhvm-php-extension .php 行动hhvm-hack-extension / hhvm_fastcgi虚拟 行动hhvm-php-extension / hhvm_fastcgi虚拟 别名/ hhvm_fastcgi /apache-data/hack/.virtual </ IfModule>configuration
有关目录结构的一些信息:
/ apache-data / hack – 应用程序的目录。 (无法访问networking..)
/ apache-data / hack / www – web根目录。 (其中index.php / index.hh是..)
index.php内容
<?PHP echo“<!DOCTYPE html> <html> <head> </ head> <body>”; 回声“Hello World!<br />”; 如果(定义('HHVM_VERSION'))回声“在HHVM版本上运行”。 HHVM_VERSION; 否则回显“HHVM处于脱机状态”。 回声“</ body> </ html>”; ?>
(2014-03-23) 更新2:
要让HHVMparsing* .hh,您必须编辑/etc/hhvm/server.hdf文件并告诉它。
附加到/etc/hhvm/server.hdf:
PhpFile { 扩展{ hphp = application / x-hhvm-php hh = application / x-hhvm-php } }