Fedora Core 3/4 下的 Zend Optimizer 问题及解决方案
Fedora Core 3/4下安装Zend Optimizer后,会出现这样的情况(error log中):[quote]Failed loading /usr/local/Zend/lib/ZendExtensionManager.so: /usr/local/Zend/lib/ZendExtensionManager.so: failed to map segment from shared object: Permission denied[/quote]
在Zend 的支持上看到了此问题在FC3下的原因和解决方案。
原因是由于SELinux的安全策略造成的,过度地保护了httpd进程,他提供了几种解决方案
[list][*]禁用SELinux,编辑/etc/selinux/config 并更改设置为 SELINUX=disabled[*]如果要启用SELinux,可以更改安全级别,去掉对httpd的保护,使用system-config-securitylevel工具[*]如果还需要SELinux保护httpd,使用以下指令启用对Zend Optimizer库的权限: chcon -t httpd_modules_t `find /usr/local/Zend/lib -name \*.so`[/list]
更多信息请参考SELinux和Apache
注:在Fedora Core 4中,使用该方法并不能解决问题,原因是SELinux的设置不兼容,应该使用
chcon -R -h -t httpd_sys_content_t /usr/local/Zend/
不知道eAccelarator是否会出现这种情况
注:安装eaccelarator的时候一定要安装php-devel
# yum install gd-devel php-gd
# yum install zlib-devel
# yum install freetype-devel freetype-demos freetype-utils
# yum install libpng-devel libpng10 libpng10-devel
# export PHP_PREFIX="/usr"
# $PHP_PREFIX/bin/phpize
# ./configure \
--enable-eaccelerator=shared \
--with-php-config=$PHP_PREFIX/bin/php-config
# make
# make install
#####################################
zend_extension="/usr/lib64/php4/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
###############################
页:
[1]
