在 Ubuntu 上配置高性能的 HHVM 环境

HHVM全称为 HipHop Virtual Machine,它是一个开源虚拟机,用来运行由 Hack(一种编程语言)和 PHP 开发应用。HHVM 在保证了 PHP 程序员最关注的高灵活性的要求下,通过使用最新的编译方式来取得了非凡的性能。到目前为止,相对于 PHP + APC (Alternative PHP Cache) ,HHVM 为 FaceBook 在 HTTP 请求的吞吐量上提高了9倍的性能,在内存的占用上,减少了5倍左右的内存占用。

同时,HHVM 也可以与基于 FastCGI 的 Web 服务器(如 Nginx 或者 Apache )协同工作。

安装 HHVM,Nginx和 Apache 还有 MariaDB

在本教程中,我们一起来配置 Nginx/Apache web 服务器、 数据库服务器 MariaDB 和 HHVM 。我们将使用 Ubuntu 15.04 (64 位),因为 HHVM 只能运行在64位系统上。同时,该教程也适用于 Debian 和 Linux Mint。

第一步: 安装 Nginx 或者 Apache 服务器

1、首先,先进行一次系统的升级并更新软件仓库列表,命令如下


  1. # apt-get update && apt-get upgrade

系统升级

2、 正如我之前说的,HHVM 能和 Nginx 和 Apache 进行集成。所以,究竟使用哪个服务器,这是你的自由,不过,我们会教你如何安装这两个服务器。

安装 Nginx

我们通过下面的命令安装 Nginx/Apache 服务器


  1. # apt-get install nginx

安装 Nginx 服务器

安装 Apache


  1. # apt-get install apache2

安装 Apache 服务器

完成这一步,你能通过以下的链接看到 Nginx 或者 Apache 的默认页面


  1. http://localhost
  2. http://IP-Address

Nginx 默认页面

Apache 默认页面

第二步: 安装和配置 MariaDB

3、 这一步,我们将通过如下命令安装 MariaDB,它是一个比 MySQL 性能更好的数据库


  1. # apt-get install mariadb-client mariadb-server

安装 MariaDB

4、 在 MariaDB 成功安装之后,你可以启动它,并且设置 root 密码来保护数据库:


  1. # systemctl start mysql
  2. # mysql_secure_installation

回答以下问题,只需要按下y或者 n并且回车。请确保你仔细的阅读过说明。


  1. Enter current password for root (enter for none) = press enter
  2. Set root password? [Y/n] = y
  3. Remove anonymous users[y/n] = y
  4. Disallow root login remotely[y/n] = y
  5. Remove test database and access to it [y/n] = y
  6. Reload privileges tables now[y/n] = y

5、 在设置了密码之后,你就可以登录 MariaDB 了。


  1. # mysql -u root -p

第三步: 安装 HHVM

6、 在此阶段,我们将安装 HHVM。我们需要添加 HHVM 的仓库到你的sources.list文件中,然后更新软件列表。


  1. # wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -
  2. # echo deb http://dl.hhvm.com/ubuntu DISTRIBUTION_VERSION main | sudo tee /etc/apt/sources.list.d/hhvm.list
  3. # apt-get update

重要:不要忘记用你的 Ubuntu 发行版代号替换上述的 DISTRIBUTION_VERSION (比如:lucid, precise, trusty) 或者是 Debian 的 jessie 或者 wheezy。在 Linux Mint 中也是一样的,不过只支持 petra。

添加了 HHVM 仓库之后,你就可以轻松安装了。


  1. # apt-get install -y hhvm

安装之后,就可以启动它,但是它并没有做到开机启动。可以用如下命令做到开机启动。


  1. # update-rc.d hhvm defaults

第四步: 配置 Nginx/Apache 连接 HHVM

7、 现在,nginx/apache 和 HHVM 都已经安装完成了,并且都独立运行起来了,所以我们需要对它们进行设置,来让它们互相关联。这个关键的步骤,就是需要告知 nginx/apache 将所有的 php 文件,都交给 HHVM 进行处理。

如果你用了 Nginx,请按照如下步骤:

nginx 的配置文件在 /etc/nginx/sites-available/default, 并且这些配置文件会在 /usr/share/nginx/html 中寻找文件执行,不过,它不知道如何处理 PHP。

为了确保 Nginx 可以连接 HHVM,我们需要执行所带的如下脚本。它可以帮助我们正确的配置 Nginx,将 hhvm.conf 放到 上面提到的配置文件 nginx.conf 的头部。

这个脚本可以确保 Nginx 可以对 .hh 和 .php 的做正确的处理,并且将它们通过 fastcgi 发送给 HHVM。


  1. # /usr/share/hhvm/install_fastcgi.sh

配置 Nginx、HHVM

重要: 如果你使用的是 Apache,这里不需要进行配置。

8、 接下来,你需要使用 hhvm 来提供 php 的运行环境。


  1. # /usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60

以上步骤完成之后,你现在可以启动并且测试它了。


  1. # systemctl start hhvm

第五步: 测试 HHVM 和 Nginx/Apache

9、 为了确认 hhvm 是否工作,你需要在 nginx/apache 的文档根目录下建立 hello.php。


  1. # nano /usr/share/nginx/html/hello.php [对于 Nginx]
  2. # nano /var/www/html/hello.php [对于 Nginx 和 Apache]

在文件中添加如下代码:


  1. <?php
  2. if (defined('HHVM_VERSION')) {
  3. echo 'HHVM is working';
  4. phpinfo();
  5. } else {
  6. echo 'HHVM is not working';
  7. }
  8. ?>

然后访问如下链接,确认自己能否看到 "hello world"


  1. http://localhost/info.php
  2. http://IP-Address/info.php

HHVM 页面

如果 “HHVM” 的页面出现了,那就说明你成功了。

结论

以上的步骤都是非常简单的,希望你能觉得这是一篇有用的教程,如果你在以上的步骤中遇到了问题,给我们留一个评论,我们将全力解决。

本文来自合作伙伴“Linux中国”,原文发布日期:2015-09-06

时间: 2024-10-31 20:12:39

在 Ubuntu 上配置高性能的 HHVM 环境的相关文章

Linux 有问必答:如何在 Ubuntu 上配置网桥

Linux 有问必答:如何在 Ubuntu 上配置网桥 Question: 我需要在我的Ubuntu主机上建立一个Linux网桥,共享一个网卡给其他一些虚拟主机或在主机上创建的容器.我目前正在Ubuntu上使用网络管理器(Network Manager),所以最好>能使用网络管理器来配置一个网桥.我该怎么做? 网桥是一个硬件装备,用来将两个或多个数据链路层(OSI七层模型中第二层)互联,以使得不同网段上的网络设备可以互相访问.当你想要互联一个主机里的多个虚拟机器或者以太接口时,就需要在Linux

ubuntu上配置Nginx+PHP5 FastCGI服务器配置

ubuntu上配置Nginx+PHP5 FastCGI服务器配置_nginx_脚本之家 首先安装或编译Nginx. 安装Nginx 源码包可以在官方主页上下载.Ubuntu 9.04可以直接通过apt安装,也可以从这里下载最新的deb包:sudo apt-get install nginx 如果要自己编译的话,需要确保自己已经有编译器和PCRE的库(用于Nginx的rewrite模块,如果不需要这个模块可以在configure时使用./configure –without-rewrite).编译

如何在自己的电脑上配置APNS推送环境_IOS

本文只是记录一下如何在自己的电脑上配置APNS推送环境,其它的如推送的原理,流程什么的这里就不写了. 一. 去Apple 开发者中心,创建App ID.注意App ID不能使用通配符.并注意添加Push Notification Service      对于已经创建的APP ID,也可以编辑给他添加Push Notification Service 二. 创建development 和 production的Certificates及Profiles. 步骤略. 注意 1. 创建Profile

c c++配置环境变量- 在Eclipse IDE for C/C++上配置C/C++开发环境

问题描述 在Eclipse IDE for C/C++上配置C/C++开发环境 我下载了最新版的MinGw,安装后出现这个画面,我想用来编写C和C++程序,在这个画面里我该选择安装哪些东西????http://rc.qzone.qq.com/photo/V13Y859J3XHc5O/batchid/1397122646382000 图片在我的空间

ubuntu上配置Nginx+PHP5 FastCGI服务器配置_nginx

首先安装或编译Nginx.安装Nginx源码包可以在官方主页上下载.Ubuntu 9.04可以直接通过apt安装,也可以从这里下载最新的deb包:sudo apt-get install nginx如果要自己编译的话,需要确保自己已经有编译器和PCRE的库(用于Nginx的rewrite模块,如果不需要这个模块可以在configure时使用./configure –without-rewrite).编译方法如下:wget http://sysoev.ru/nginx/nginx-0.5.34.t

在Ubuntu上配置VNC和Windows系统进行远程连接

  通过将服务器配置成VNC SERVER,可以让其他主机使用图形方式登录这台服务器. 一.在ubuntu下配置vnc server很简单,方法如下: 服务器端: 1.先安装VNC服务程序: 代码如下: $ sudo apt-get install vnc4-common vnc4server 2.给当前用户设置vnc登录密码: 代码如下: $ vncpasswd 3.修改vnc的默认设置,使启动时运行gnome作为X的桌面(如果不设置,vnc将使用twm,你可以试试,相信你会很不习惯的): 代

Ubuntu上配置Ruby on Rails框架及RubyMine IDE开发环境_ruby专题

准备阶段的碎碎念 在virtualbox安装过程中由于这样那样的原因,产生许多坑. 坑1.关于终端,一定要使用启动器打开 安装完虚拟机,进入系统,我们便会遇到第一个坑,终端软件,建议大家都使用启动器打开终端, 千万不要使用文件管理器,进入文件夹,再右键"在终端中打开",这个时候,环境变量加载不上,尤其在非桌面文件夹进入时.终端加载不上环境变量,大多的软件都没法在终端中执行. 打开终端时,一定要通过启动器,所谓启动器,就是在bantu中放在桌面左侧的侧边栏,很像windows中的快捷方式

ubuntu上配置freeradius+sql的问题

问题描述 我的freeradius是2.2.12版本的,按照网上资料http://hexidlee.blog.163.com/blog/static/3879804220112212212117/配置下来.但是最后在执行radiusd-X的时候碰到错误:Couldnotlinkdriverrlm_sql_mysql:rlm_sql_mysql.so:cannotopensharedobjectfile:NosuchfileordirectoryMakesureit(andallitsdepend

5个让Cinnamon桌面环境完美运行在ubuntu上的方法

5个让Cinnamon桌面环境完美运行在ubuntu上的方法 Cinnamon桌面环境最新稳定版本发行了,ubuntu用户可以去安装使用了 在已经安装好的基础上,我们可以做一些微调来拥有更棒的体验 . 你的Ubuntu如果没有安装Cinnamon,你可以参照我们之前的文章进行安装. 更改Mint菜单图标 Mint菜单图标是Cinnamon的特色之一,它给予用户一种简单.快速.熟悉的方式来搜索.打开.组织应用程序,默认情况下,菜单使用启动程序项中的Linux Mint Logo.既然你是在ubun