0

Memcached を Zend Framework Web サイトに統合して 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 経由でアクセスして確認することはできません。extension_dirin php.ini をに設定しました/usr/local/lib/php/extensions/no-debug-non-zts-###/が、extension=memcached.soまだクラスが見つかりません。設定が間違っていますか?

4

1 に答える 1

1

memcachedphp スクリプトではなく、php 拡張機能です。php.iniつまり、次のようなもので有効にする必要があります

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

またはそのようなもの。拡張機能の名前の付け方を調べてください。

http://php.net/memcached.setup

于 2012-07-16T20:13:29.443 に答える