1.編譯eaccelerator
Warning: Unknown: open_basedir restriction in effect. File() is not within the allowed path(s): (.:/tmp/) in Unknown on line 0
Fatal error: Can’t load /XX/index.php, open_basedir restriction. in Unknown on line 0
出現了很多次這樣的問題了,感覺都無從下手,總覺得與系統和php有關, 今天又出現了, 想來想去都覺得不奇怪, 後面開始重新編譯php, php的擴充都沒編譯,發現設定open_basedir的時候,卻沒有出錯^^^ , 從這個資訊覺得有些可以利用的,把自己方案所需的擴充都安裝進去,重啟apache的時候,卻發現有出現這個錯誤, 把php.ini中設定的擴充一個一個的關閉,開始排查,後面吧eaccelerator注釋掉後,重啟apache並沒有出現錯誤, 定位問題出現eaccelerator, 在用google查了下,發現eaccelerator 0.9.6後的版本跟以前的有些改變,把open_basedir給限制了,這時我們要把限制去掉才行
下載eaccelerator 0.9.6後先不要安裝,解包後找到eaccelerator.c這個檔案,開啟第1156行,這樣的:
if (PG(open_basedir) && php_check_open_basedir(realname TSRMLS_CC)) {
修改成:
if (PG(open_basedir) && php_check_open_basedir(file_handle->filename TSRMLS_CC)) {
修改後在進行編譯,就ok了
phpize
./configure
make
2.安裝
make install
會將eaccelerator編譯到目標路徑
3.設定
拷貝eaccelerator.ini到 /etc/php.d/eaccelerator.ini
extension=”eaccelerator.so”
eaccelerator.shm_size=”16″
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″