ZendChina | Zend中文权威资讯's Archiver

ZendChina 发表于 2008-8-6 16:07

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]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.