服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 4559|回复: 0

linux下安装Zend Optimizer问题解答

[复制链接]
dirtysea 发表于 2010-3-8 13:04:17 | 显示全部楼层 |阅读模式
linux下安装Zend Optimizer问题解答

一。动态链接库加载出错ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied
   
[root@localhost ZendOptimizer-3.3.3-linux-glibc23-i386]# php -v
Failed loading /usr/local/Zend/lib/Optimizer-3.3.3/php-5.1.x/ZendOptimizer.so:  /usr/local/Zend/lib/Optimizer-3.3.3/php-5.1.x/ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied
安装湖出现以上问题,原来这是SELinux搞的鬼,
解决办法1:
关闭SELINX,执行:/usr/sbin/setenforce 0
禁止掉SELinux
更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled

解决办法2:

chcon -t textrel_shlib_t /usr/local/Zend/lib/Optimizer-3.3.3/php-5.1.x/ZendOptimizer.so
semanage fcontext -a -t textrel_shlib_t /usr/local/Zend/lib/Optimizer-3.3.3/php-5.1.x/ZendOptimizer.so

chcon -t textrel_shlib_t /usr/local/Zend/lib/ZendExtensionManager.so
semanage fcontext -a -t textrel_shlib_t /usr/local/Zend/lib/ZendExtensionManager.so

二 apache调用php的时候不能加载zend模块
   有的时候还有一些情况下 php -i 或php -v 在控制台下可以看到zend opt,
但是 apache 执行phpinfo的输出里面却看不到
一般是因为 调用php的时候zend模块不能加载, 比如AS4里面 就是这样的
如as4下面默认的php安装后读取库文件的路径 是在/usr/lib下面 ,
而php.ini文件中加载zend模块是在zend安装路径的lib目录中.比如/usr/local/Zend/lib
这时apache在执行php时不能加载zend模块.

所以 在控制台里php -v 可以正常但是apache 却没有加载zend。
解决办法:
先把zend模块copy到/usr/lib里面 然后改一下php.ini里面zend加载模块部分




您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-4-29 00:15 , Processed in 0.085282 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表