eAccelerator是一個(gè)自由開放源碼php加速器,優(yōu)化和動(dòng)態(tài)內(nèi)容緩存,提高了php腳本的緩存性能,使得PHP腳本在編譯的狀態(tài)下,對(duì)服務(wù)器的開銷幾乎完全消除,下面我們來看看eAccelerator擴(kuò)展開啟open_basedir報(bào)錯(cuò)解決辦法.
eAccelerator擴(kuò)展開啟open_basedir報(bào)錯(cuò)
如果你在使用php加速擴(kuò)展eAccelerator時(shí)發(fā)現(xiàn)開啟open_basedir配置項(xiàng)目后程序頁面或者PHP錯(cuò)誤日志會(huì)提示.
open_basedir restriction. in Unknown on line 0
出現(xiàn)這個(gè)問題的原因是一般eAccelerator的緩存文件不在你配置的open_basedir目錄之中,而eAccelerator也傻乎乎的遵守了open_basedir的設(shè)定.
在網(wǎng)上轉(zhuǎn)了一圈發(fā)現(xiàn)了兩種解決這個(gè)問題的辦法:
1.給eAccelerator打補(bǔ)丁
下載本文附件中的補(bǔ)丁文件然后運(yùn)行下面命令
cd eaccelerator-0.9.6.1
patch eaccelerator.c eaccelerator.c.2.patch
然后照常規(guī)步驟編譯即可.
2.編譯時(shí)增加參數(shù)
在配置eAccelerator的時(shí)候增加 “–without-eaccelerator-use-inode” 參數(shù)
./configure –without-eaccelerator-use-inode
補(bǔ)充:eAccelerator安裝和配置
首先您要安裝好PHP,然后再來編譯安裝 eaccelerator,過程如下,我們從官方下的版本是 eaccelerator-0.9.5.2.tar.bz2.編譯安裝;
- # tar xvf eaccelerator-0.9.5.2.tar.bz2
- # cd eaccelerator-0.9.5.2
- # export PHP_PREFIX="/usr"
- # $PHP_PREFIX/bin/phpize
- # ./configure
- --enable-eaccelerator=shared
- --with-php-config=$PHP_PREFIX/bin/php-config
- # make
- # make install
注:通過export 來設(shè)置php所在的安裝路徑變量,我的PHP是安裝在/usr目錄下,系統(tǒng)用Slackware 12.0,其它系統(tǒng)如果默認(rèn)安裝也大體差不多,如果不一樣,就自己指定一下.
完成安裝后,eaccelerator.so模塊位于 /usr/lib/php/extensions目錄中,您的系統(tǒng)如果和我不一樣,您自己應(yīng)該安裝在哪了.
# echo "/usr/lib/php/extensions" > /etc/ld.so.conf
# ldconfig
注:更新動(dòng)態(tài)鏈接庫地址;
修改配置文件;我們首先要修改;php.ini,然后重啟Apache;在php.ini文件中,加入;
zend_extension="/usr/lib/php/extensions/eaccelerator.so" 注:模塊的具體位置;
- eaccelerator.shm_size="16" 注:共享內(nèi)存大小;
- eaccelerator.cache_dir="/home/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"
注:其中,模塊的具體位置必須正確,以您的系統(tǒng)為準(zhǔn),共享內(nèi)存大小可以自己調(diào)整,感覺16M還是可以的,根據(jù)服務(wù)器的情況,你自己調(diào)一下,緩存目錄可以自己指定,我們?cè)谶@里指定的是 /home目錄上的 eaccelerator 目錄,如果沒有,自己創(chuàng)建一個(gè),權(quán)限是0777.
以上的配置是把 eaccelerator 做為 Zend 的擴(kuò)展模塊來編譯的辦法,如果您的PHP是用安裝模式編譯的,要把 zend_extension改為zend_extension_ts.
如果您是把 eaccelerator 做為 PHP的一個(gè)擴(kuò)展,要用下面的配置.
- extension="eaccelerator.so"
- eaccelerator.shm_size="16"
- eaccelerator.cache_dir="/home/eaccelerator"
- eaccelerator.enable="1"
- eaccelerator.optimizer="1"
- eaccelerator.check_mtime="1"
是不是生效了,您要查看 /home/eaccelerator 目錄中,當(dāng)Apache服務(wù)器啟動(dòng)了,你隨便點(diǎn)幾個(gè)頁面,如果在這個(gè)目錄中,出現(xiàn)文件了,那就是生效了,如果沒任何文件,就要找原因了 ……
這兩個(gè)配置文件,是不是管用,要你自己根據(jù)情況來修改.
# mkdir /home/eaccelerator
# chmod 777 /home/eaccelerator
注:創(chuàng)建緩存目錄池,權(quán)限是777
較為安全的應(yīng)該是0644,原文:A safer and cleaner way would be to change the owner of the directory to the same user PHP runs as (most of the time the same user as Apache or Lighttpd) and set 0644 permissions.)
新聞熱點(diǎn)
疑難解答
圖片精選