Ubuntu系统部署HHVM网站环境(LEMH) – Linux, Nginx, MariaDB, HHVM

HHVM(HipHop Virtual Machine),由大名鼎鼎的FACEBOOK公司开发的用来执行PHP脚本的虚拟机环境,可以大大的提高PHP执行环境性能。相比较我们传统的网站环境来看,同等的硬件配置可以承受更大的流量访问用户压力,只不过我们国内还没有流行起来,提供这类安装环境的教程比较少,也或者我们暂时还没有重视。

之前一段时间有网友提到是否可以提供这些方面的教程,毕竟国外主机优惠之前也没有安装过和使用过,于是只能现学现用,参考国内、国外的已有较少的教程。这篇文章介绍在Ubuntu 14.04系统中搭建LEMH环境,采用Linux, Nginx, MariaDB, HHVM部署环境的过程。

第一、安装Nginx

apt-get update
apt-get install nginx

在安装过程中,需要输入y回车,然后我们service nginx start启动NGINX就可以安装完毕。验证是否完整安装,我们在浏览器中输入IP地址,可以看到\”Welcome to nginx on Debian!\”就没有问题了。

第二、安装MariaDB

多年来,我们在安装网站环境的过程中,都习惯使用MYSQL数据库,自动被收购之后有存在闭源安全的问题,于是大家考虑转向使用MariaDB。MariaDB管理系统是MYSQL数据库的分支,目前主要由于开源社区在维护,且与MYSQL兼容性很好,可以说是MYSQL的替代品也不错。

如果我们服务器有安装过MYSQL,那就先要删除,然后再安装MariaDB

apt-get remove –purge mysql-server mysql-client mysql-common
apt-get autoremove
rm -rf /var/lib/mysql
apt-get autoclean

添加PPA

apt-get install software-properties-common
apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
add-apt-repository \’deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main\’
apt-get update

安装MariaDB

apt-get install mariadb-server

执行过程中需要输入y回车可以继续。

输入设置数据库ROOT密码,回车然后再输入一次。安装完毕之后执行service mysql start启动MYSQL数据库。

第三、安装PHP和HHVM

HHVM不是用来代替PHP的,是PHP开源虚拟机提高PHP性能的,采用JIT编译的,性能卓越,据说越来越比较多人使用。我们在安装HHVM之前,需要先安装PHP。

apt-get install php5-fpm php5-mysql php5-curl

执行脚本,遇到需要继续的输入y回车。然后我们安装HHVM。

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

安装完毕之后我们需要执行脚本配置NGINX。

sh /usr/share/hhvm/install_fastcgi.sh

然后重启HHVM

service hhvm restart

重启完毕之后我们就可以测试是否安装完毕HHVM。

vi /var/www/html/phpinfo.php

然后添加脚本

保存之后,我们在浏览器地址栏中输入http://我们VPS主机IP地址/phpinfo.php,可以看到。

看到这个之后就没有问题了。HHVM就完毕安装。

第四、配置HHVM+Nginx站点

我们在环境安装完毕之后我们就需要添加域名进行站点配置了。

1、添加配置文件

vi /etc/nginx/sites-available/my-site

然后黏贴下面的脚本

server {
listen 80;
listen [::]:80;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.html index.htm;

server_name laozuo.org;
include hhvm-with-fallback.conf;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location @fallback {
#       include snippets/fastcgi-php.conf;
#
#       # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache\’s document root
# concurs with nginx\’s one
#
location ~ /\\.ht {
deny all;
}
}

我们需要注意上面两处红色的标注,需要修改网址和文件存储。

2、PHP5-FPM备用系统

HHVM有些时候会存在问题,在这样的情况下,我们需要用一个备用系统,当HHVM失败之后,我们用PHP5-FPM接管。所以,我们需要添加配置fallback。

vi /etc/nginx/hhvm-with-fallback.conf

然后贴上

location ~ \\.(hh|php)$ {
proxy_intercept_errors on;
error_page 500 501 502 503 = @fallback;

fastcgi_keep_conn on;

fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
include        fastcgi_params;
}

然后我们保存退出。

3、测试NGINX

nginx -t

4、重启Nginx

service nginx restart

重启nginx使得NGINX生效。

总结,每次写教程都比较折腾,开始使用DEBIAN测试的,发现有点点问题,然后又切换回UBUNTU系统,不论如何最后能成功安装出来,且给自己以后需要和有网友需要学习参考,是国外主机优惠最大的荣幸。在这篇文章中,我们可以在UBUNTU环境中部署LEMH(Linux, Nginx, MariaDB, HHVM),如果我们站点有需要,可以试试。