php7 버전에서는 pecl 을 이용하여 pecl-php-memcache 를 사용할수 없다.
php7에서 memcached 를 이용하시 위해서는 php-memcached 를 사용한다.
이프로그램을 필수 라이브러리로 libmemcached, libmemcached-devel 를 필요로 한다.
라이브러리설치는 CentOS7 의 경우 yum으로 설치진행을 할 수 있다. ( libmemcached-devel-1.0.16-5.el7.x86_64 )
1 |
~]# yum install libmemcached libmemcached-devel |
다만 CentOS6에서는 yum 설치를 할경우 어이없이 낮은 버전인 0.31 이 설치되어 php-memcached 를 설치 할 수 없다.
때문에 별개의 패키지를 다운 받아 RPM 설치를 해야 한다.
1 2 3 4 5 6 7 |
~]# wget http://mirror.ghettoforge.org/distributions/gf/el/6/plus/x86_64/libmemcached-1.0.16-2.gf.el6.x86_64.rpm ~]# wget http://mirror.ghettoforge.org/distributions/gf/el/6/plus/x86_64/libmemcached-devel-1.0.16-2.gf.el6.x86_64.rpm ~]# wget http://mirror.ghettoforge.org/distributions/gf/el/6/plus/x86_64/libmemcached-libs-1.0.16-2.gf.el6.x86_64.rpm ~]# rpm -Uvh libmemcached-libs-1.0.16-2.gf.el6.x86_64.rpm ~]# rpm -Uvh libmemcached-1.0.16-2.gf.el6.x86_64.rpm ~]# rpm -Uvh libmemcached-devel-1.0.16-2.gf.el6.x86_64.rpm |
php-memcached 설치방법.
1 2 3 4 5 6 |
~]# git clone https://github.com/php-memcached-dev/php-memcached.git ~]# cd php-memcached ~]# git checkout php7 ~]# /usr/local/php/bin/phpize ~]# ./configure --with-php-config=/usr/local/php/bin/php-config ~]# make && make install |
아래와 같이 설치된 so파일을 불러오도록 설정하고
1 2 3 4 5 6 |
[memcached] extension=memcached.so memcache.allow_failover="1" memcache.max_failover_attempts="20" memcache.chunk_size="8192" memcache.default_port="11211" |
php.ini 파일에 session 생성을 memcache를 쓰도록 한다.
1 2 3 |
;session.save_handler = files session.save_handler = "memcache" session.save_path = "127.0.0.1:11211" |
이후 php 에서는 세션 스타트 후에 session_regenerate_id 을 호출해야 한다.
1 2 3 |
<?php session_start(); session_regenerate_id(true); |
PS. 별도 세션폴더를 지정하여 쓰는 프로그램의 경우 오류가 난다.( 그누보드등 )