2011-07-26 9 views
10

私はmemcachedをlibmemcachedと一緒にインストールしました。また、私はigbinaryをインストールしました。最初にmemcachedをインストールしてigbinaryを有効にする方法

これは私のphp.iniです:

; Directory in which the loadable extensions (modules) reside. 
;extension_dir = "./" 
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/" 

extension=apc.so 
apc.enabled=1 
apc.shm_size=128M 

extension=memcached.so 
session.save_handler=memcached 
session.save_path="127.0.0.1:11211" 

extension=igbinary.so 
session.serialize_handler=igbinary 
igbinary.compact_strings=On 

私がするphpinfoを実行する()私はmemcachedのためigbinaryが有効になっていることがわかりますが、ない

apc 
Serialization Support php, igbinary 

igbinary 
igbinary support enabled 
igbinary version 1.1.1 
igbinary APC serializer ABI  0 

Directive Local Value Master Value 
igbinary.compact_strings On On 

のphpinfo()のmemcachedについて:

memcached 
memcached support enabled 
Version  1.0.2 
libmemcached version 0.51 
Session support  yes 
igbinary support no 

その最後の行:igbinary supportのthatsを質問。奇妙なことに、見出しの下に表示されるように、APCには:Serialization Support php, igbinaryと記載されています。

なぜ私はigbinaryを有効にできないのか分かりますmemcached

ありがとうございます!

+0

選択した回答はどのように役立ちましたか?私は同じ状況にありますが、その意味を理解できませんでした。あなたは何をしたのか説明できますか? –

答えて

9

はあなたのmemcachedの拡張子が--enable-memcachedを-igbinary使用してコンパイルされたかどうかを確認するために、一定のMemcached :: HAVE_IGBINARYを確認することができます。

出典:http://php.net/manual/en/memcached.constants.php

のMemcached :: OPT_SERIALIZER

は非スカラー値をシリアル化するために使用するシリアライザを指定します。 有効なシリアライザは、Memcached :: SERIALIZER_PHPまたは Memcached :: SERIALIZER_IGBINARYです。後者は、 memcachedが - enable-memcached-igbinaryオプションで構成され、 igbinary拡張がロードされている場合にのみサポートされます。

タイプ:整数、デフォルト:Memcached :: SERIALIZER_PHP。

のMemcached :: HAVE_IGBINARY

はigbinaryシリアライザのサポートが利用可能であるかどうかを示します。

タイプ:ブール値。あなたは、Mac上で動作し、MacPortsのを使用している場合

+0

私はマニュアルをより良く解釈する必要があります。ありがとう! – DelphiLynx

+0

memcachedがenabled-memcached-igbinaryでコンパイルされていない場合、設定を変更する方法は?またはmemcachedを再インストールする必要がありますか? –

1

、あなたは、このコマンドでigbinaryサポート付きのphp5-memcachedの拡張機能をインストールすることができます

sudo port install php5-memcached +igbinary 

+igbinaryphp5-memcachedポートのバリアントを指定します。

このコマンドは、Macにigbinary対応のmemcached拡張機能をインストールします。

あなたがここにバリアントポートについての詳細を読むことができます:PECLのmemcachedのが「--enable-memcachedを-igbinary」で構築されていなかったので、あなたがそれを有効にすることはできませんhttp://guide.macports.org/#using.variants

11

PECLインストールはこれを取ることはありません。フラグとして、ので、ここであなたはそれをPECLのmemcachedのを構築する方法である(以下の例では、ルートとしてUbuntuの上で)

#if you have libmemcached-dev < 1.0.X need to run: sudo apt-get purge libmemcached-dev 
apt-get install libevent-dev 
pecl install igbinary  

#cant do sudo pecl install memcached-2.1.0 cuz it wont let me use igbinary 
#compiling manually per http://www.neanderthal-technology.com/2011/11/ubuntu-10-install-php-memcached-with-igbinary-support/ 

#install libmemcached v 1.0.X for pecl memcached 2.1.0 
cd /tmp 
libmemcached_ver="1.0.15" 
wget https://launchpad.net/libmemcached/1.0/${libmemcached_ver}/+download/libmemcached-${libmemcached_ver}.tar.gz 
tar xzvf libmemcached-${libmemcached_ver}.tar.gz 
cd libmemcached-${libmemcached_ver}/ 
./configure 
make 
make install 
cd ../ 
rm -r libmemcached-${libmemcached_ver} 

#install memcached PECL extension 
pecl_memcached_ver="2.1.0" 
pecl download memcached-${pecl_memcached_ver} 
tar xzvf memcached-${pecl_memcached_ver}.tgz 
cd memcached-${pecl_memcached_ver}/ 
phpize 
./configure --enable-memcached-igbinary 
make 
make install 
cd .. 
rm -r memcached-${pecl_memcached_ver} 

echo "extension=igbinary.so" > /etc/php5/fpm/conf.d/igbinary.ini 
echo "extension=memcached.so" > /etc/php5/fpm/conf.d/memcached.ini 

#now restart your PHP server 

のphpinfo()のページをアップロードし、あなたは今、「igbinaryサポートを:はい」と表示されるはずの下でmemcachedセクション。

+0

ありがとう、@rynop !!!!!!!他のサイトはうまく機能していませんでしたが、あなたの指示は私のためのトリックでした。巨大な助け。 – hourback

+0

np。あまりにも悪いですが、これはかなり強力です。 – rynop

+0

ubuntu 12.04の魅力のように働いた - ありがとう!試した正確な画像はpuphpet(http://box.puphpet.com/ubuntu-precise12042-x64-vbox43.box)からのものです。 –

関連する問題