태그 Archives: memcache

CentOS6 에서 php7 – memcache 설치

php7 버전에서는 pecl 을 이용하여 pecl-php-memcache 를 사용할수 없다.

php7에서 memcached 를 이용하시 위해서는 php-memcached 를 사용한다.
이프로그램을 필수 라이브러리로 libmemcached, libmemcached-devel 를 필요로 한다.

라이브러리설치는 CentOS7 의 경우 yum으로 설치진행을 할 수 있다. ( libmemcached-devel-1.0.16-5.el7.x86_64 )

 

다만 CentOS6에서는 yum 설치를 할경우 어이없이 낮은 버전인 0.31 이 설치되어 php-memcached 를 설치 할 수 없다.
때문에 별개의 패키지를 다운 받아 RPM 설치를 해야 한다.

 

php-memcached 설치방법.

 

아래와 같이 설치된 so파일을 불러오도록 설정하고

php.ini 파일에 session 생성을 memcache를 쓰도록 한다.

이후 php 에서는 세션 스타트 후에 session_regenerate_id 을 호출해야 한다.

 

PS. 별도 세션폴더를 지정하여 쓰는 프로그램의 경우 오류가 난다.( 그누보드등 )

 

memcache 설치 및 session.cache 운용

memcached 는 서버의 메모리를 할당해서 사용할수 있는 데몬의 일종이다.

파일캐시, 쿼리캐시, 세션캐시 등을 할 수 있으나 파일 캐시, 쿼리캐시는 최근에 사용되는 자체 데몬의 캐시가 오히려 더 효율적이기 때문에 사용치 않는다.

때문에 여기서는 세션캐시 부분만을 설명할 예정이다.

1. 설치

pecl, phpize, php-config 경로는 자신의 php 경로에 맞게 수정되어야 한다 ‘ㅅ’a

 

2. 실행 및 데몬 자동 실행 등록

 

3. php.ini 설정 ( session 은 기존 설정값 변경 / 다른 부분은 추가. ) ( php 7.0 – memecahe을 포함 한다 )

 

설정 후 아파치를 재시작 하거나 php-fpm 일경우 php 을 재시작 하면 적용이 된다.
용량이나 포트등은 /etc/sysconfig/memcached 에서 설정할 수 있다.
기본 설정인 32M 의 경우 약 25000개의 세션을 버티는거 같다 = =a

 

4. 주의 사항.
일반적으로 문제가 생기지는 않으나 그누보드4 & 5 의 경우에 문제가 발생한다.
common.php 파일부분에 수정을 가해야만 정상동작 할 수 있다.

그누보드5

그누보드4

물론 위에서 설명한 php.ini 설정을 하지 못했다면 더 어려워지겠다 =3=a

 

일반적인 /tmp 를 사용하거나 그누보드처럼 자체 폴더에 세션을 생성 하는 방법은 그 폴더에 32000여개의 파일이상이 생성이 될경우 사이트 속도가 매우 느려질 수 있다. ( 10초이상 걸릴 수도 있다. )
즉 사이트가 대형화가 된 경우의 속도 저하를 방지 한다.

그누보드의 경우 각 접속 뿐만 아니라 각 게시물의 xx번 읽음 체크를 위해 세션을 이용하기도 하기 때문에 이 느려지는시점은 본인 생각보다 빨리 올 수 있다.

 

운영중인 memcached 의 자원 관리를 위해 memcache.php 를 운용해서 확인할 수 있다.
https://github.com/lagged/memcache.php