HCRM博客

在CentOS系统上轻松部署HHVM教程

在 CentOS 上安装 HHVM 的详细步骤与常见问题解答

一、HHVM简介

HHVM(HipHop Virtual Machine)是由 Facebook 开发的高性能 PHP 虚拟机,通过即时(JIT)编译将 PHP 代码转换为高度优化的机器码,从而大幅提升执行效率,HHVM 支持多种运行模式,包括 Eval 模式和 FastCGI 模式,能够显著提高 PHP 应用的性能。

在CentOS系统上轻松部署HHVM教程-图1
(图片来源网络,侵权删除)

二、HHVM 安装步骤

1. 系统准备

确保你的 CentOS 系统是最新的,并且满足 HHVM 对资源的要求,建议使用 CentOS 7 及以上版本。

sudo yum update y

2. 安装 EPEL 仓库

HHVM 需要 EPEL (Extra Packages for Enterprise Linux) 仓库中的依赖库,安装 EPEL 仓库:

sudo yum install epelrelease y

3. 安装必要的依赖库

HHVM 依赖于多个第三方库,这些库可以通过以下命令安装:

在CentOS系统上轻松部署HHVM教程-图2
(图片来源网络,侵权删除)
sudo yum groupinstall "Development Tools" y
sudo yum install gcc gccc++ cmake git libmemcacheddevel boostdevel jemallocdevel libeventdevel libxsltdevel libicudevel tbbdevel bzip2devel openldapdevel readlinedevel elfutilslibelfdevel libdwarfdevel libcapdevel libyamldevel libeditdevel unixODBCdevel ImageMagickdevel y

4. 下载并安装 Google glog 和 Oniguruma

HHVM 需要 Google glog 和 Oniguruma 库,这两个库不在默认的 EPEL 仓库中,需要手动下载和安装。

安装 Google glog
wget https://googleglog.googlecode.com/files/glog0.3.3.tar.gz
tar xvzf glog0.3.3.tar.gz
cd glog0.3.3
./configure
make
sudo make install
安装 Oniguruma
wget http://www.geocities.jp/kosako3/oniguruma/archive/onig5.9.5.tar.gz
tar xvzf onig5.9.5.tar.gz
cd onig5.9.5
./configure
make
sudo make install

5. 下载并编译 HHVM

从官方 GitHub 仓库下载并编译 HHVM:

下载 HHVM 源码
git clone https://github.com/facebook/hhvm.git b master recursive
cd hhvm
编译 HHVM
mkdir dist && cd dist
cmake ..
make j2
sudo make install

6. 配置 HHVM 服务

为了方便管理 HHVM,可以将其设置为 systemd 服务。

在CentOS系统上轻松部署HHVM教程-图3
(图片来源网络,侵权删除)
创建 systemd 服务文件
sudo vi /usr/lib/systemd/system/hhvm.service

在文件中添加以下内容:

[Unit]
Description=HHVM HipHop Virtual Machine (FCGI)
After=network.target nginx.service mariadb.service
[Service]
ExecStart=/usr/local/bin/hhvm config /etc/hhvm/server.ini user wwwdata mode daemon vServer.Type=fastcgi vServer.FileSocket=/var/run/hhvm/hhvm.sock
Restart=always
[Install]
WantedBy=multiuser.target

注意:请根据实际的 HHVM 安装路径调整ExecStart 中的路径。

7. 启动并启用 HHVM 服务

sudo systemctl daemonreload
sudo systemctl start hhvm
sudo systemctl enable hhvm

8. 配置 Nginx 以使用 HHVM

编辑 Nginx 配置文件,使其支持通过 FastCGI 使用 HHVM,创建或修改配置文件/etc/nginx/conf.d/hhvm.conf

sudo vi /etc/nginx/conf.d/hhvm.conf

在文件中添加以下内容:

location ~ \.(hh|php)$ {
    root   /usr/share/nginx/html;
    index  index.php index.html index.htm;
    fastcgi_pass unix:/var/run/hhvm/hhvm.sock;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param  QUERY_STRING     $query_string;
    fastcgi_param  REQUEST_METHOD   $request_method;
    fastcgi_param  CONTENT_TYPE    $content_type;
    fastcgi_param  CONTENT_LENGTH  $content_length;
    fastcgi_param  SCRIPT_NAME     $fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param  REQUEST_URI     $request_uri;
    fastcgi_param  DOCUMENT_URI    $document_uri;
    fastcgi_param  DOCUMENT_ROOT   $document_root;
    fastcgi_param  SERVER_PROTOCOL $server_protocol;
    fastcgi_param  GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param  REMOTE_ADDR     $remote_addr;
    fastcgi_param  REMOTE_PORT     $remote_port;
    fastcgi_param  SERVER_ADDR     $server_addr;
    fastcgi_param  SERVER_PORT     $server_port;
    fastcgi_param  SERVER_NAME     $server_name;
}

9. 重启 Nginx

sudo systemctl restart nginx

三、常见问题解答(FAQs)

Q1:如何更改 HHVM 的版本?

A1:要更改 HHVM 的版本,可以按照以下步骤操作:

1、删除旧版本:如果已经安装了旧版本的 HHVM,可以通过以下命令删除:

   sudo systemctl stop hhvm
   sudo systemctl disable hhvm
   sudo rm rf /usr/local/bin/hhvm /etc/hhvm /var/run/hhvm /var/log/hhvm /usr/lib/systemd/system/hhvm.service

2、安装新版本:然后按照上述步骤重新编译和安装新版本的 HHVM。

Q2:HHVM 无法启动,提示缺少共享库怎么办?

A2:HHVM 可能依赖某些未安装的共享库,可以使用ldd /usr/local/bin/hhvm 命令检查所需的共享库,并确保它们都已安装,如果提示缺少libonig.so.2,可以通过以下命令安装:

   sudo yum install onigurumadevel y

然后为共享库创建符号链接(如果有需要):

   sudo ln s /usr/local/lib/libonig.so.5 /usr/lib/libonig.so.2

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/21300.html

分享:
扫描分享到社交APP
上一篇
下一篇