Memcached open_basedir限制生效

时间:2012-07-16 20:08:16

标签: php memcached

我正在尝试将Memcached集成到我的Zend Framework网站中以加速Ajax调用,但我遇到了麻烦。我尝试使用此功能在我的引导程序中初始化它:

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访问它来确认。我将php.ini中的extension_dir设置为/usr/local/lib/php/extensions/no-debug-non-zts-###/,我有extension=memcached.so但我仍然没有找到Class。我的设置不正确吗?

1 个答案:

答案 0 :(得分:1)

memcached是一个php扩展,而不是一个php脚本。这意味着,必须在php.ini内启用它,例如

extension=/root/memcached-1.4.13/memcached.so

或类似的东西。找出扩展名如何命名。

http://php.net/memcached.setup