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),如果我们站点有需要,可以试试。