我正在尝试将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。我的设置不正确吗?
答案 0 :(得分:1)
memcached
是一个php扩展,而不是一个php脚本。这意味着,必须在php.ini
内启用它,例如
extension=/root/memcached-1.4.13/memcached.so
或类似的东西。找出扩展名如何命名。