|  | 
 
| 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加载模块部分
 
 
 
 
 
 | 
 |