HHVM 已安装,但根据 error.log,环境中缺少类型检查器
HHVM is installed, but typechecker is missing from environment according to error.log
我从文件内部的以下内容开始:
<?php phpinfo();
输出如下:
HHVM Version 3.12.1
...etc...
我把文件改成这样:
<?hh phpinfo();
我收到服务器错误 500 响应,然后我检查 hhvm 登录 /var/log/hhvm/error.log:
Fatal error: /path/to/my/file.php appears to be a Hack file, but you do not appear
to be running the Hack typechecker. See the documentation at
http://docs.hhvm.com/hack/typechecker/setup for information on getting it running.
You can also set `-d hhvm.hack.lang.look_for_typechecker=0` to disable this check
(not recommended).
错误消息中提供的文档的 link 将我带到一个假定类型检查器已安装的页面。但是,它提供了一个 link 用于安装类型检查器。单击 link 会告诉我:
There are two ways to get the typechecker: automatically when you install HHVM or
by compiling it.
啊,但我确实安装了 HHVM,这就是我得到上面显示的第一个输出的方式:
HHVM Version 3.12.1
...etc...
此外,文档是这样说的:
The typechecker client is generally installed at /usr/bin/hh_client while the
typechecker server is generally installed at /usr/bin/hh_server.
这是我在 运行 $ ls -la /usr/bin/hh_client /usr/bin/hh_server
时看到的
-rwxr-xr-x 1 root root 3689005 Feb 29 22:07 /usr/bin/hh_client
-rwxr-xr-x 1 root root 3876085 Feb 29 22:07 /usr/bin/hh_server
从所有迹象来看,类型检查器看起来已经安装好了!
以下是我在 Ubuntu 14.04 上的安装方式:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
sudo add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install hhvm
sudo update-rc.d hhvm defaults
sudo /usr/share/hhvm/install_fastcgi.sh
在 /etc/hhvm/server.ini 里面我有这个:
;hhvm.server.port = 9000
hhvm.server.file_socket=/var/run/hhvm/hhvm.sock
我已确保在我的所有配置中都具备以下条件:
fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
我已经重启了所有服务器。
我在两个不同的系统 运行ning Ubuntu 14.04(包括 Ubuntu 14.04 的全新最小安装)上执行了整个过程,结果相同。
问题是您没有为类型检查设置代码,而不是没有安装类型检查器。根据错误发送给您的文档,您需要在代码库的根目录下创建一个 .hhconfig
文件。
我从文件内部的以下内容开始:
<?php phpinfo();
输出如下:
HHVM Version 3.12.1
...etc...
我把文件改成这样:
<?hh phpinfo();
我收到服务器错误 500 响应,然后我检查 hhvm 登录 /var/log/hhvm/error.log:
Fatal error: /path/to/my/file.php appears to be a Hack file, but you do not appear
to be running the Hack typechecker. See the documentation at
http://docs.hhvm.com/hack/typechecker/setup for information on getting it running.
You can also set `-d hhvm.hack.lang.look_for_typechecker=0` to disable this check
(not recommended).
错误消息中提供的文档的 link 将我带到一个假定类型检查器已安装的页面。但是,它提供了一个 link 用于安装类型检查器。单击 link 会告诉我:
There are two ways to get the typechecker: automatically when you install HHVM or
by compiling it.
啊,但我确实安装了 HHVM,这就是我得到上面显示的第一个输出的方式:
HHVM Version 3.12.1
...etc...
此外,文档是这样说的:
The typechecker client is generally installed at /usr/bin/hh_client while the
typechecker server is generally installed at /usr/bin/hh_server.
这是我在 运行 $ ls -la /usr/bin/hh_client /usr/bin/hh_server
时看到的-rwxr-xr-x 1 root root 3689005 Feb 29 22:07 /usr/bin/hh_client
-rwxr-xr-x 1 root root 3876085 Feb 29 22:07 /usr/bin/hh_server
从所有迹象来看,类型检查器看起来已经安装好了!
以下是我在 Ubuntu 14.04 上的安装方式:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
sudo add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install hhvm
sudo update-rc.d hhvm defaults
sudo /usr/share/hhvm/install_fastcgi.sh
在 /etc/hhvm/server.ini 里面我有这个:
;hhvm.server.port = 9000
hhvm.server.file_socket=/var/run/hhvm/hhvm.sock
我已确保在我的所有配置中都具备以下条件:
fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
我已经重启了所有服务器。
我在两个不同的系统 运行ning Ubuntu 14.04(包括 Ubuntu 14.04 的全新最小安装)上执行了整个过程,结果相同。
问题是您没有为类型检查设置代码,而不是没有安装类型检查器。根据错误发送给您的文档,您需要在代码库的根目录下创建一个 .hhconfig
文件。