如何在 Ubuntu 13.10 VPS 上安装 HHVM(HipHop 虚拟机

介绍

本文将介绍在 Digital Ocean VPS 上安装 Ubuntu 13.10 上的 HHVM 所需步骤。

一个命令行Hello World脚本在PHP 2 一个基于Web的Hello World脚本写在PHP和由HHVM服务器 服务

前提条件

本教程的唯一前提是安装Ubuntu 13.10 x64**的VPS,请注意HHVM不支持任何32位操作系统,他们没有计划为32位操作系统添加支持。

您需要从命令行执行命令,您可以以两种方式之一:

  1. 使用 SSH 来访问 dropplet.
  2. 从数字海洋 dropplet 管理面板中使用控制台访问

什么是HHVM

HipHop Virtual Machine (HHVM)是一个由Facebook开发和开源的虚拟机,用于处理和执行用PHP编写的程序和脚本。

根据他们的网站,HHVM已经实现了网络请求输出量增加超过9倍,并且与Zend PHP引擎 + APC相比,Facebook的内存消耗量减少了超过5倍(这是当前的大多数PHP应用程序的托管方式)。

安装 HHVM

安装 HHVM 非常简单,不应超过几分钟,从命令行执行以下 4 个命令将安装 HHVM 并准备好:

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

若要确认 HHVM 已安装,请输入以下命令:

1hhvm --help

这将显示如何从命令行使用hhvm命令的细节. 这里有一个示范屏幕截图,说明了这一点:

hhvm --help screenshot

测试PHP中的Hello World脚本从命令行使用HHVM

在命令行上输入以下命令:

1cat > hello_world.php

这将创建一个名为hello_world.php的文件,并允许您输入其内容。输入(或复制并粘贴)以下代码,然后按Ctrl + D来保存该文件。

1<?php
2
3echo "\nHello World\n\n";

注: 如果您熟悉nanovim等编辑器,您可以使用这些编辑器来创建和保存此文件。

一旦创建了此文件,可以使用‘hhvm’来执行它,使用以下命令:

1hhvm hello_world.php

这里有一个屏幕截图来说明这个Hello World脚本的创建和执行:

Command Line Hello World

测试PHP中的Hello World脚本使用HHVM服务器(可从浏览器访问)

首先创建一个目录(‘public’),它将作为公共文件夹并包含PHP文件。 _ 请注意,您可以命名此目录,并将其放置到任何地方。

1mkdir public
2cd public

现在,在命令行上输入以下命令:

1cat > hello.php

这将在公共目录中创建一个名为hello.php的文件,并允许您输入其内容。输入(或复制并粘贴)以下代码,然后按Ctrl + D来保存该文件。

1<?php
2
3echo '<h1>Hello World</h1>';

注: 如果您熟悉nanovim等编辑器,您可以使用这些编辑器来创建和保存此文件。

一旦这个文件被创建,‘hhvm’可以从命令行使用,以如下方式启动服务器:

1hhvm -m server

这里有一个屏幕截图来说明这个Hello World脚本的创建和执行:

Web Based Hello World Commands

这个命令将启动服务器(在端口80上),现在可以从浏览器访问‘hello.php’文件. 如果滴滴的IP地址是128.199.212.7,则可以访问这个新创建的文件在:

1http://128.199.212.7/hello.php

** 注意:** _替换128.199.212.7以您的 droplet 使用的 IP 地址或域名。

访问此 URL 应该显示类似于下面的屏幕截图的网页:

Web Based Hello World Screenshot

将您的 PHP 应用程序移至 HHVM

要开始使用 HHVM 来服务 PHP 应用程序,而不是使用 Zend/Apache 在端口 80 (网站的标准端口),需要停止 Apache 服务。

1service apache2 stop

此命令将阻止Apache,并为HHVM释放端口80来使用。下一步是启动HHVM服务器 **在您的PHP应用程序的 root目录中。

使用以下命令切换到此目录:

1cd /var/www

一旦您进入此目录,您所需要做的就是启动 HHVM 服务器:

1hhvm -m server

此命令将启动HHVM服务器,它将从当前目录开始服务您的PHP应用程序。

在 FastCGI 模式下使用 HHVM

从版本 3.0 开始,HHVM 不再可以在服务器模式中使用,本节将帮助您在 Apache 和 Nginx 服务器上在 FastCGI 模式下配置 HHVM。

与Apache

将 HHVM 配置为在 FastCGI 模式下使用 Apache 是非常简单的,您只需要执行以下脚本:

1/usr/share/hhvm/install_fastcgi.sh

运行此脚本将配置Apache开始使用HHVM来处理PHP代码,它还将重新启动Apache服务器,因此您无需做其他任何事情。

关于 Nginx

如果您正在使用 Nginx 和 PHP-FPM,则需要修改配置文件以禁用 PHP-FPM。

寻找下面的部分,并确保它被评论(通过在每个行开始时添加一个# )

 1# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 2#
 3#location ~ \.php$ {
 4#       fastcgi_split_path_info ^(.+\.php)(/.+)$;
 5#       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
 6#
 7#       # With php5-cgi alone:
 8#       fastcgi_pass 127.0.0.1:9000;
 9#       # With php5-fpm:
10#       fastcgi_pass unix:/var/run/php5-fpm.sock;
11#       fastcgi_index index.php;
12#       include fastcgi_params;
13#}

完成此操作后,执行以下脚本:

1/usr/share/hhvm/install_fastcgi.sh

运行此脚本会让 Nginx 开始使用 HHVM 来处理 PHP 代码,还会重新启动 Nginx 服务器,以便您无需做其他任何事情。

确认 Apache/Nginx 正在使用 HHVM

配置您的服务器开始使用 HHVM 后,您可以确认服务器(Apache 或 Nginx)确实使用 HHVM 来处理 PHP。

您可以通过创建一个测试PHP文件,比如‘info.php’并将其放入您的服务器的公共文件夹(通常是Apache的‘/var/www’和 Nginx的‘/usr/share/nginx/html’)。

1<?php
2
3echo defined('HHVM_VERSION')?'Using HHVM':'Not using HHVM';

现在,如果一切都设置顺利,当您在浏览器中访问此文件时,您应该看到以下消息:

使用HHVM

重要笔记

HHVM 包含了许多常用的 PHP 扩展,使其易于在没有太多的麻烦的情况下传输大量应用程序,但是,如果应用程序使用尚未嵌入的 PHP 扩展,选择 HHVM 将破坏应用程序。

最后一句话

如果你已经到达了这一点,你现在已经准备好开始使用HHVM来服务你的PHP基于的网站。 比常规ZendPHP引擎 + APC组合效率高几倍,HHVM可以帮助你以更低的硬件要求为你的网站提供更多的访问者!

Submitted by: Jay
Published At
Categories with 技术
comments powered by Disqus