如何在一个Ubuntu 13.10安装VPS HHVM(HipHop Virtual Machine)

介绍

本文将通过对一个在Ubuntu 13.10安装HHVM所需的步骤走数字海洋 VPS。 本文还将说明如何使用HHVM创建:

  1. PHP中的命令行“Hello World”脚本

  2. 基于Web的“Hello World”脚本,由PHP编写,由HHVM服务器提供

先决条件

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

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

  1. 使用SSH访问Droplet。

  2. 使用Digital Ocean Droplet管理面板中的“控制台访问”

什么是HHVM?

HipHop Virtual Machine(HHVM)是发达,开放被Facebook来源可以处理和执行用PHP编写的程序和脚本的虚拟机。 Facebook开发HHVM是因为常规的Zend + Apache组合不能高效地为PHP内置的大型应用程序提供服务。

根据他们的网站,HHVM已经意识到了在Web请求的吞吐量及以上的内存消耗5倍降低为Facebook与Zend的PHP引擎+ APC(这是承载大部分的PHP应用程序的当前方式)相比,9倍的增加

安装HHVM

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

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

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

hhvm --help

这将显示如何在细节hhvm命令可以在命令行中使用。 这里是一个示例截图,说明了这一点:

hhvm --help屏幕截图

在PHP中使用HHVM从命令行测试“Hello World”脚本

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

cat > hello_world.php

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

<?php

echo "\nHello World\n\n";

注意: 如果你熟悉像编辑nanovim ,你可以使用这些来创建并保存此文件。

一旦这个文件被创建, hhvm可用于使用以下命令来执行它:

hhvm hello_world.php

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

命令行Hello World

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

首先创建一个目录( public ),将作为公共文件夹,并包含PHP文件。 请注意,您可以命名该目录任何东西,任何地方放置 执行以下命令创建此目录并输入:

mkdir public
cd public

现在在命令行上键入以下命令:

cat > hello.php

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

<?php

echo '<h1>Hello World</h1>';

注意: 如果你熟悉像编辑nanovim ,你可以使用这些来创建并保存此文件。

一旦该文件已经创建, hhvm可以通过命令行用于启动以下面的方式在服务器:

hhvm -m server

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

基于Web的Hello World命令

此命令将启动服务器(端口80)和hello.php文件现在可以从浏览器访问。 如果Droplet的IP地址为128.199.212.7,则可以在以下位置访问此新创建的文件:

http://128.199.212.7/hello.php

注意: 更换128.199.212.7与您Droplet所使用的IP地址或域名。

访问此网址应显示与以下屏幕截图中类似的网页:

基于Web的Hello World截图

将您的PHP应用程序移植到HHVM

为了开始在端口80(网站的标准端口)上使用HHVM而不是Zend / Apache来提供PHP应用程序,需要停止Apache服务。 这可以使用以下命令完成:

service apache2 stop

此命令将停止Apache并释放端口80供HHVM使用。 下一步是启动HHVM 服务器PHP应用程序的根目录 在Ubuntu这个根目录的最常见的位置是/var/www

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

cd /var/www

一旦你在这个目录中,所有你需要做的是启动HHVM服务器:

hhvm -m server

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

在FastCGI模式下使用HHVM

从V3.0开始,HHVM不能再在服务器模式下使用。 本节将帮助您在FastCGI模式下使用Apache和Nginx服务器配置HHVM。

与Apache

使用Apache配置HHVM在FastCGI模式下工作非常简单。 所有你需要做的是执行以下脚本:

/usr/share/hhvm/install_fastcgi.sh

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

用Nginx

如果您使用Nginx与PHP-FPM,您必须修改配置文件以禁用PHP-FPM的使用。 此文件通常位于/etc/nginx/sites-available/default

查找以下部分,确保它的所有评论(通过添加#在每一行开头)

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

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

/usr/share/hhvm/install_fastcgi.sh

执行此脚本配置Nginx开始使用HHVM来处理PHP代码。 它也将重新启动Nginx服务器,所以你不必做任何其他事情。

确认Apache / Nginx正在使用HHVM

将服务器配置为开始使用HHVM之后,始终最好确认服务器(Apache或Nginx)确实使用HHVM处理PHP。

您可以通过创建一个测试PHP文件做到这一点,让我们说info.php ,并把它在你的服务器(通常的公用文件夹/var/www Apache和/usr/share/nginx/html为Nginx的)。 现在将以下内容放在此文件中:

<?php

echo  defined('HHVM_VERSION')?'Using HHVM':'Not using HHVM';

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

使用HHVM

重要的提示

HHVM已经并入了许多常用的PHP扩展,使得轻松地移植大量应用程序而不会有太大的麻烦。 但是,如果应用程序使用尚未并入的PHP扩展,选择HHVM将会中断应用程序。 已经移植到HHVM PHP扩展的完整列表,可以发现这里

最后的话

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

:提交周杰伦
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏