10 月 18 2014
CentOS yum安装apache2.4及hhvm
本文共被喵星人侦察过24,449次。。。闲着没事把VPS的PHP换成了HHVM,试了一下效果,直接吓尿了。。。放个图(说明下我现在用的是DigitalOcean最低配的VPS,也就是单核512内存的,除了HHVM未做任何优化或者缓存等):
虽说探针的测试不能说明太多问题,不过还是可以看出来性能明显有提升。实际访问的时候处理请求的时间也短了许多。。。以下是安装方法:
首先添加包含有Apache2.4和HHVM的源
cd /etc/yum.repos.d wget http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo wget http://www.hop5.in/yum/el6/hop5.repo
之后安装Apache2.4和HHVM
yum install httpd24-httpd httpd24-httpd-devel httpd24-mod_ssl hhvm
然后就安装完了。。。这样安装的Apache2.4配置文件什么的都在/opt/rh/httpd24/root/etc/httpd/这个地方,所以他和CentOS默认安装的Apache2.2是共存的,想启动Apache2.4就要先停止Apache2.2。安装好之后的问题便是启动HHVM
/usr/bin/hhvm --mode server -vServer.Port=8080 -vServer.Type=fastcgi &
执行完这个命令后HHVM就会以FastCGI的方式监听8080端口,也可以使用其他的端口,修改参数就行。修改端口后下面Apache相应的端口也要修改哦。然后我们去配置Apache2.4
在/opt/rh/httpd24/root/etc/httpd/conf.d 这个文件夹下面新建一个.conf文件,内容类似下面这样:
<VirtualHost *:80> ServerAdmin Cat@xCat.me #这里是管理员邮箱 ServerName Test.Cat #这里是域名 DocumentRoot /var/www/html/ #这里Web目录 ErrorLog logs/Cat-hhvm-error_log #错误日志,可以注释掉不要 CustomLog logs/Cat-hhvm-access_log combined #访问日志 可以注释掉不要 #下面两行选一行就可以,ProxyPass把所有请求代理给HHVM处理 #ProxyPassMatch只把PHP代理给HHVM处理,推荐ProxyPassMatch #里面的var/www/html也要改成网站所在目录。 ProxyPass / fcgi://127.0.0.1:8080/var/www/html/hhvmtest ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:8080/var/www/html/hhvmtest/$1 <Directory /> AllowOverride all Options -MultiViews Require all granted </Directory> </VirtualHost>
配置多站点的话在新建几个conf文件或者在刚才的文件下面增加VirtualHost就可以了。如果你之前启用了Apache,就要先关闭它。
service httpd stop
然后启动Apache2.4
service httpd24-httpd start
然后尽情享用HHVM带来的性能提升吧~
Andrew
2015 年 01 月 09 日 @ 10:23
仅限CentOS 6
laura
2015 年 04 月 08 日 @ 19:13
有人成功了么?怎么我总是提示出错
大懒猫
2015 年 04 月 08 日 @ 19:18
@laura:我就成功了呀。。。你哪里出错了
laura
2015 年 04 月 09 日 @ 10:36
@大懒猫:Starting httpd: AH00526: Syntax error on line 14 of /opt/rh/httpd24/root/etc/httpd/conf.d/httpd24-vhosts.conf:
laura
2015 年 04 月 09 日 @ 10:45
@laura:这下又提示localhost.crt does not exist or is empty
大懒猫
2015 年 04 月 09 日 @ 11:00
@laura:你这是配置文件写的不对啊。。。
laura
2015 年 04 月 09 日 @ 11:03
@大懒猫:哪里不对啊?能加我QQ吗?1462480342
大懒猫
2015 年 04 月 09 日 @ 11:08
@laura:他都提示你第14行有问题了。打开看看哪里不对。
laura
2015 年 04 月 09 日 @ 11:12
Starting httpd: AH00526: Syntax error on line 100 of /opt/rh/httpd24/root/etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file ‘/etc/pki/tls/certs/localhost.crt’ does not exist or is empty
laura
2015 年 04 月 09 日 @ 11:14
运行service httpd stop,提示unrecognized service
大懒猫
2015 年 04 月 09 日 @ 11:16
@laura:你去网上搜索下错误提示都会有很多结果的。。。而且你用Apache2.4服务是http24-httpd不是httpd。。。
把错误提示扔到Google搜索下就能解决问题。
laura
2015 年 04 月 09 日 @ 11:18
@大懒猫:百度了一下,没找到解决方法
大懒猫
2015 年 04 月 09 日 @ 11:26
@laura:搜索错误信息的时候不要把出错的文件路径一起放进去。
laura
2015 年 04 月 09 日 @ 11:49
是要生成crt文件还是路径不对而已啊?
大懒猫
2015 年 04 月 09 日 @ 11:50
@laura:你想用HTTPS的话肯定需要crt文件,如果你生成了crt就是路径不对。
laura
2015 年 04 月 09 日 @ 14:40
@大懒猫:我不需要HTTPS啊…怎么设置呢?
大懒猫
2015 年 04 月 11 日 @ 23:29
@laura:不需要HTTPS的话就把配置文件里相关的部分删除了。搜索一下有很详细的配置文件说明。