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

dirtysea 发表于 2010-3-8 13:04:17

linux下安装Zend Optimizer问题解答

linux下安装Zend Optimizer问题解答

一。动态链接库加载出错ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied
   
# 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加载模块部分




页: [1]
查看完整版本: linux下安装Zend Optimizer问题解答