我正在嘗試將Memcached集成到我的Zend Framework網站中以加速Ajax調用,但是我遇到了麻煩。我試着用這個函數初始化它在我的引導:Memcached open_basedir生效限制
public function _initMemcached(){
$memcache = new Memcached;
$memcache->connect('127.0.0.1', 11211);
Zend_Registry::set('memcached', $memcache);
}
但這只是拋出一個錯誤,PHP找不到類。據主辦我的網站的數據中心,Memcached的應安裝在/root/memcached-1.4.13/
,所以我嘗試添加一個require_once,現在它拋出這個錯誤:
Warning: require_once() [function.require-once]: open_basedir restriction in effect. File(/root/memcached-1.4.13/Memcached.php) is not within the allowed path(s):
我已經盡力了的open_basedir重置我的引導,但它似乎沒有工作。我怎樣才能擺脫這個錯誤,以便我可以實例化一個memcached對象並繼續我的業務?
編輯:
數據中心告訴我,memcached.so裏面/usr/local/lib/php/extensions/no-debug-non-zts-###/
但我無法通過SSH訪問以進行確認。我有extension_dir
在php.ini設置爲/usr/local/lib/php/extensions/no-debug-non-zts-###/
,我有extension=memcached.so
但我仍然沒有找到類。我有我的設置不正確嗎?
如果你創建一個包含'腳本<?PHP的phpinfo()?>'你看到一個叫做'memcached'與版本和libmemcached版部分?如果沒有顯示出來,那麼他們還沒有將memcached擴展加載到PHP中。 memcached不是一個可以包含的php腳本,它是一個擴展,必須通過'php.ini'中的'extension'指令加載到PHP中 – drew010 2012-07-16 20:11:54
我已經檢查過,並且它不顯示,重複他們所做的事情。 '/ root/memcached-1.4.13'文件夾存在,它被填充文件,但沒有php文件。我不確定他們是否安裝了它或什麼。 – jaimerump 2012-07-16 20:14:46
這可能是他們下載並編譯它的地方,但輸出文件應該是'memcached.so',它會進入'/ usr/lib/php/extensions/no-debug-non-zts - ###### ## /'然後必須在擴展指令中添加到'php.ini'中。如果你有shell訪問權限,你可以只讀訪問'phpinfo()'中列出的'php.ini'文件。如果是這樣,嘗試打開文件,看看他們是否添加了擴展指令。 – drew010 2012-07-16 20:41:59