2011-07-26 26 views
10

Tôi đã cài đặt memcached với libmemcached. Ngoài ra tôi đã cài đặt igbinary.Cách bật igbinary với memcached được cài đặt đầu tiên

Đây là php.ini của tôi:

; 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 

.

Khi tôi chạy phpinfo() tôi thấy igbinary được kích hoạt, nhưng không cho memcached:

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() về memcached:

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

Đó dòng cuối cùng: igbinary support thats câu hỏi. Kỳ lạ là đủ, như bạn có thể thấy dưới tiêu đề apc có nêu: Serialization Support php, igbinary.

Vì vậy, ai đó biết lý do tại sao tôi không thể bật igbinary cho memcached?

Cảm ơn!

+0

câu trả lời đã chọn của bạn đã giúp bạn như thế nào? Tôi đang ở trong tình trạng tương tự, nhưng không thể hiểu được câu trả lời có nghĩa là gì. Bạn có thể giải thích bạn đã làm gì không? –

Trả lời

9

Bạn có thể kiểm tra Memcached :: HAVE_IGBINARY liên tục để xem nếu mở rộng memcached của bạn đã được biên soạn bằng enable-memcached-igbinary.

Nguồn: http://php.net/manual/en/memcached.constants.php

Memcached :: OPT_SERIALIZER

Chỉ định serializer để sử dụng cho serializing giá trị phi vô hướng. serializers hợp lệ là Memcached :: SERIALIZER_PHP hoặc Memcached :: SERIALIZER_IGBINARY. Cái sau chỉ được hỗ trợ khi memcached được cấu hình với tùy chọn --enable-memcached-igbinary và phần mở rộng igbinary được tải.

Loại: số nguyên, mặc định: Memcached :: SERIALIZER_PHP.

Memcached :: HAVE_IGBINARY

Cho biết hỗ trợ serializer igbinary có sẵn.

Loại: boolean.

+0

Tôi phải giải thích hướng dẫn sử dụng tốt hơn. Cảm ơn! – DelphiLynx

+0

Tôi đoán câu hỏi là, nếu memcached không được biên dịch với kích hoạt-memcached-igbinary, làm thế nào để thay đổi các thiết lập? hoặc chúng ta phải cài đặt lại memcached một lần nữa? –

1

Nếu bạn làm việc trên máy Mac và sử dụng MacPorts, bạn có thể cài đặt tiện ích php5-memcached với sự hỗ trợ igbinary với lệnh này:

sudo port install php5-memcached +igbinary 

Các +igbinary quy định cụ thể một biến thể của cảng php5-memcached.

Lệnh đó sẽ cài đặt tiện ích mở rộng memcached được kích hoạt trên máy Mac của bạn.

Bạn có thể đọc thêm về cảng biến thể ở đây: http://guide.macports.org/#using.variants

11

Bạn không thể kích hoạt nó vì PECL memcached không được xây dựng với 'enable-memcached-igbinary'

PECL cài đặt không thực hiện việc này như một lá cờ, vì vậy đây là cách bạn có thể xây dựng PECL memcached với nó (ví dụ sau đây là trên ubuntu như là người chủ)

#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 

tải lên một trang phpinfo() và bây giờ bạn sẽ thấy 'hỗ trợ igbinary: yes' dưới phần memcached.

+0

Cảm ơn bạn, @rynop !!!!!!! Các trang web khác đã không được khá làm việc, nhưng hướng dẫn của bạn đã làm các trick cho tôi. Giúp đỡ rất nhiều. – hourback

+0

np. quá xấu này không được tài liệu tốt hơn vì nó khá mạnh mẽ. – rynop

+0

Làm việc như một sự quyến rũ trong ubuntu 12.04 - cảm ơn! Hình ảnh chính xác đã thử là từ puphpet (http://box.puphpet.com/ubuntu-precise12042-x64-vbox43.box) –

Các vấn đề liên quan