介绍
本文将介绍在 Digital Ocean VPS 上安装 Ubuntu 13.10 上的 HHVM 所需步骤。
一个命令行Hello World
脚本在PHP
2 一个基于Web的Hello World
脚本写在PHP和由HHVM服务器
服务
前提条件
本教程的唯一前提是安装Ubuntu 13.10 x64**的VPS,请注意HHVM不支持任何32位操作系统,他们没有计划为32位操作系统添加支持。
您需要从命令行执行命令,您可以以两种方式之一:
- 使用 SSH 来访问 dropplet.
- 从数字海洋 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
命令的细节. 这里有一个示范屏幕截图,说明了这一点:
测试PHP中的Hello World
脚本从命令行使用HHVM
在命令行上输入以下命令:
1cat > hello_world.php
这将创建一个名为hello_world.php
的文件,并允许您输入其内容。输入(或复制并粘贴)以下代码,然后按Ctrl + D
来保存该文件。
1<?php
2
3echo "\nHello World\n\n";
注: 如果您熟悉nano
或vim
等编辑器,您可以使用这些编辑器来创建和保存此文件。
一旦创建了此文件,可以使用‘hhvm’来执行它,使用以下命令:
1hhvm hello_world.php
这里有一个屏幕截图来说明这个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>';
注: 如果您熟悉nano
或vim
等编辑器,您可以使用这些编辑器来创建和保存此文件。
一旦这个文件被创建,‘hhvm’可以从命令行使用,以如下方式启动服务器:
1hhvm -m server
这里有一个屏幕截图来说明这个Hello World脚本的创建和执行:
这个命令将启动服务器(在端口80上),现在可以从浏览器访问‘hello.php’文件. 如果滴滴的IP地址是128.199.212.7,则可以访问这个新创建的文件在:
1http://128.199.212.7/hello.php
** 注意:** _替换128.199.212.7
以您的 droplet 使用的 IP 地址或域名。
访问此 URL 应该显示类似于下面的屏幕截图的网页:
将您的 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可以帮助你以更低的硬件要求为你的网站提供更多的访问者!