如何在Ubuntu13.10VPS上安装HHVM(HipHop虚拟机)

来自菜鸟教程
跳转至:导航、​搜索

介绍

本文将介绍在 Digital Ocean VPS 上的 Ubuntu 13.10 上安装 HHVM 所需的步骤。 本文还将说明如何通过创建来使用 HHVM:

  1. PHP 中的命令行“Hello World”脚本
  2. 用 PHP 编写并由 HHVM 服务器提供的基于 Web 的“Hello World”脚本

先决条件

本教程的唯一先决条件是安装了 Ubuntu 13.10 x64 的 VPS。 请注意,HHVM 不支持任何 32 位操作系统,并且他们没有计划添加对 32 位操作系统的支持。

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

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

什么是 HHVM?

HipHop Virtual Machine (HHVM) 是由 Facebook 开发和开源的虚拟机,用于处理和执行用 PHP 编写的程序和脚本。 Facebook 开发 HHVM 是因为常规的 Zend+Apache 组合在为 PHP 构建的大型应用程序提供服务时效率不高。

根据他们的网站,与 Zend PHP 引擎 + APC(这是当前托管大多数 PHP 应用程序的方式)。

安装 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 从命令行测试 PHP 中的“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 脚本的创建和执行:

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

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

mkdir public
cd public

现在在命令行中输入以下命令:

cat > hello.php

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

<?php

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

笔记: 如果您熟悉 nanovim 等编辑器,则可以使用它们来创建和保存此文件。

创建此文件后,可以从命令行使用 hhvm 通过以下方式启动服务器:

hhvm -m server

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

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

http://128.199.212.7/hello.php

笔记: 128.199.212.7 替换为您的 Droplet 使用的 IP 地址或域名。

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

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

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

service apache2 stop

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

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

cd /var/www

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

hhvm -m server

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

在 FastCGI 模式下使用 HHVM

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

与阿帕奇

将 HHVM 配置为使用 Apache 在 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 并将其放在服务器的公共文件夹中(通常是 Apache 的 /var/www 和 Nginx 的 /usr/share/nginx/html)。 现在将以下内容放入此文件中:

<?php

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

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

使用 HHVM

重要的提示

HHVM 集成了很多常用的 PHP 扩展,可以轻松移植大量应用程序而无需大惊小怪。 但是,如果应用程序使用尚未合并的 PHP 扩展,则选择 HHVM 将破坏应用程序。 已移植到 HHVM 的 PHP 扩展的完整列表可以在 here 中找到

最后一句话

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

提交人:http: [[“%3Ca|//javascript.asia]] [[“%3C/a|”>杰]]