在线课堂
通过在线课堂,您可以随时随地,学习最新的PHP开发知识。
通过在线课堂,您可以随时随地,学习最新的PHP开发知识。
PHP7出来很久了,唯一的竞争对手便是HHVM了。网上有各种性能对比测试,比较让人信服的答案依然是HHVM > PHP7
在2008年,Facebook 启动了一项工作,计划开发一个工具 将 PHP 脚本转换成 C++,这样就可以被编译后在 web 服务器上运行。目的是节省服务器资源,这是一个很重要的目标,因为 Facebook 的用户量正在快速增长。从这个意义上讲,这个项目是成功的,因为它可以让服务器处理之前五到六倍的请求量。
时间回到2010年,Facebook 的服务器需求已经增加了很多,是时候考虑用新的创新来提升更大的效率。基于这个需求,Facebook 开发了 HHVM。
HHVM 使用了 Just-In-Time (JIT) 编译方式将 PHP 代码转换成某种字节码。接下来把字节码再转换成机器码并进行优化,让它尽可能快的运行。
PHP 7 是 PHP 社区对 HHVM 的回应。PHP 7 发布的预览版本号称比之前的 PHP 5 的性能要提升100%。 你可能会问 PHP 的版本直接从 PHP5 跳到了 PHP7,答案是这样的:PHP6 的开发开始于2005年,但是它的进展过于缓慢又出现了很多的问题,这样 PHP6 在它还没有发布正式版本之前就有了不好的名声。所以PHP社区决定给这个语言的新版本直接命名为 PHP7。
真正的问题不是 PHP5 和 PHP7 之间的比较,因为已经很明显了, PHP7 提供了更快速的运行速度。但是我们想比较的是 PHP7 和 HHVM。很多专家已经分别使用了这两个方法来处理PHP代码,并且揭示了一些有趣的结论。
除了开发出 HHVM 的 FaceBook 公司外,还有很多其他公司也采用了这个方案,在服务器上用 HHVM 运行 PHP 应用,包括 Wikimedia 和电子商务网站 Etsy。
su
apt-get update
apt-get upgrade
apt-get install unzip curl python-software-properties software-properties-common
使vim支持中文
vim /etc/vim/vimrc
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc
add-apt-repository ppa:nginx/stable
apt-get update
apt-get install nginx
vim /etc/hosts
#加入
140.211.166.134 dl.hhvm.com
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"
apt-get update
apt-get install hhvm
安装完成,显示如下信息
********************************************************************
* HHVM is installed.
*
* Running PHP web scripts with HHVM is done by having your
* webserver talk to HHVM over FastCGI. Install nginx or Apache,
* and then:
* $ sudo /usr/share/hhvm/install_fastcgi.sh
* $ sudo /etc/init.d/hhvm restart
* (if using nginx) $ sudo /etc/init.d/nginx restart
* (if using apache) $ sudo /etc/init.d/apache restart
*
* Detailed FastCGI directions are online at:
* https://github.com/facebook/hhvm/wiki/FastCGI
*
* If you're using HHVM to run web scripts, you probably want it
* to start at boot:
* $ sudo update-rc.d hhvm defaults
*
* Running command-line scripts with HHVM requires no special setup:
* $ hhvm whatever.php
*
* You can use HHVM for /usr/bin/php even if you have php-cli
* installed:
* $ sudo /usr/bin/update-alternatives \
* --install /usr/bin/php php /usr/bin/hhvm 60
********************************************************************
依据提示执行
/usr/share/hhvm/install_fastcgi.sh
/etc/init.d/hhvm restart
/etc/init.d/nginx restart
update-rc.d hhvm defaults
使用hhvm代替php命令
/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
php -v
显示如下信息
HipHop VM 3.13.1 (rel)
Compiler: tags/HHVM-3.13.1-0-g4f382ad928a6e2a0607a8dcb251002aca77f11f6
Repo schema: 655b5912cb8136e9df6f9be972153e38ac446e0f
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu trusty main'
apt-get update
apt-get install mariadb-server
cd /etc/nginx/sites-available/
cp default xSystem
vim xSystem
修改为
server {
listen 80 default_server;
root /var/www/xSystem/public;
index index.html index.htm index.php;
server_name www.phpwh.com;
include hhvm.conf;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
建立链接
ln -s /etc/nginx/sites-available/xSystem /etc/nginx/sites-enabled/xSystem
rm /etc/nginx/sites-enabled/default
service nginx restart
cd /var/www
chmod -R 755 xSystem
chmod -R 777 xSystem/storage
检查hhvm日志
vim /var/log/hhvm/error.log
出现如下信息
\nFatal error: unexpected St13runtime_error: locale::facet::_S_create_c_locale name not valid
解决方法
export LC_ALL=C
reboot