PHP5.5安装ZendGuardLoader扩展组件

续:
PHP 5.3 以后,Zend Optimizer 已经被全新的 Zend Guard Loader 取代
源码包下载
php5.5:
http://downloads.zend.com/guard/7.0.0/zend-loader-php5.5-linux-x86_64_update1.tar.gz

tar xvf zend-loader-php5.5-linux-x86_64_update1.tar.gz
cd  zend-loader-php5.5-linux-x86_64
cp ZendGuardLoader.so /usr/local/php

这里写图片描述

vim /etc/php.ini  在末尾添加一下内容
[zend.loader]
zend_loader.enable=1
zend_extension=/usr/local/php/ZendGuardLoader.so

Apache:重启Apache服务即生效
Nginx:重启 php-fpm服务则生效
如果幸运的话,可以直接重启成功,不过我这里遇到了点问题,重启服务后两个都未生效
service php-fpm restart 报错如下:
这里写图片描述

寻求百度大神得知:这是由于php在安全线程模式下运行不支持ZendGuardLoader的原因
这里写图片描述
那就把安全模式改为disable吧,继续寻求百度大神如何改,找到一篇有用的文章:http://aiwei.us/5463.html 意思就是:
如果要在Linux 上运行Zend Guard Loader时,编译PHP5.3以上版本时不能启用Thread Safe模式,也就是禁用Thread Safe,使其状态为Thread Safety:disabled,要想PHP Thread Safe 为disabled状态,Apache编译时MPM必须为prefork模式,然后再编译PHP,Thread Safety默认就是disable了。
先来查看一下我的apache的MPM模式:
这里写图片描述
从上面卡看我的apache mpm使用的是event模式,幸运的是我编译时使用的是–enable-mpms-shared=all, 可以支持三种模式,只需修改下配置文件(httpd.conf)切换为prefork模式即可,否则我就得重新编译Apache了。

vim /etc/httpd/httpd.conf
修改如下

这里写图片描述
重启Apache,再次查看
httpd -V
这里写图片描述
已经是prefork模式了,不过PHP必须得要再次重新编译安装一下,才可以

CD到原来的源码包目录下
cd /usr/src/php/php-5.5.15  
make clean  需要删除上次的编译结果,然后才能再重新编译,否则会报错
./configure 参数与上次编译时完全一样
make && make install
一切顺利,安装完成

重启php-fpm服务,没有再报错,重启成功
重启apache服务
再此打开phpinfo
这里写图片描述
Thread Safety 已经是 disabled,且 Zend Guard Loader也成功出来了
总结:
PHP5.3以上版本要想支持ZendGuardLoader,php Thread Safe必须为disable,要想PHP Thread Safe 为disabled状态,Apache编译时MPM必须为prefork模式,所以LANMP的编译安装顺序:mysql-apache-php-nginx(nginx什么时候装都可以)
拓展:Apache的三种MPM模式:prefork,worker,event 详解http://blog.jobbole.com/91920/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值