解决linux 安装 Zend Optimizer出现的错误
在 Fedora 10 安装 lighttpd + php5 + mysql5 + zend Optimizer. 前3个均可以用 yum 进行安装,很方便. 而 zend Optimizer 需要下载解压后,到解压目录输入:
1 | ./install.sh |
就会出现界面提示安装.安装后重启 lighttpd却没有成功启动zend Optimizer.
解决方法:
1.对于 php.ini文件路径有问题( 我的在 phpinfo()显示php.ini路径正确,我就不用这个方法 )
解决方法:
1 | php -i | grep php.ini |
就可以找到当前php使用的php.ini文件. 如果php optimizer安装好了 却发现不能加载的话可以 手工指定读取php.ini文件的位置.
1 | php -c /etc/ -v |
如果可以看到zend opt正确加载. 那么做个连接就好了,连接到php默认读取的php.ini路径下面:
1 | ln -sf /etc/php.ini /usr/local/lib |
Ok 正常了.
2.Failed loading /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so php -i 中显示:
1 | Failed loading /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so: /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied |
解决办法:
1 | chmod -R 777 /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so |
3.最恶心的SElinux问题 SElinux导致PHP不能使用 zend/lib下的库文件.所以,即便是做了link也不行.只能够拷贝库文件到有权限的目录.或者直接关掉SElinux. 但我已在 /etc/selinux/config 的 SELINUX=disabled 关掉SElinux 还是不行, 再网络查询发现 在你保证SElinux 被disable后.还执行下:
1 | chcon -t texrel_shlib_t /usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so |
就可以了.