본문 바로가기

IT/PHP

[memcache php]

memcached를 설치하는 법은 구글에 널렸다... 설치는 금방 하니 구글링을 이용하고...


php에서 연동하려는데 좀처럼 되질 않았다.


우선 아래에서 memcached php 라이브러리를 받아


아래 네개의 명령을 하는데


난 첨에 phpize 명령이 먹질 않았다...


sudo apt-get install php5-dev 깔아주니 된다 오예~~~


그러면 뭔가 파일들이 수두룩하게 생기고


./configure를 해주면 더 생긴다...


make, make install을 해준 후에


http://pecl.php.net/package/memcache

  • # phpize
  • # ./configure
  • # make
  • # make install


memcache.so 요 파일을 복사해줘야 하는데


ubuntu 기준으로...


/usr/lib/php5/20121212/


이 밑이였다... 저 날짜같이 생긴 폴더는 뭔지 모르겠으나...


내가 설치한 mongo-php driver와 관련된 mongo.so 파일도 여기에 들어있었다.


그담에 php.ini 파일을 수정해야 하는데


내 pc (ubuntu) 기준으로


/etc/php5/apache2/php.ini


여기에 있었다.


맨 밑으로 내려가서 다음 내용을 추가한다.


extension=memcache.so
memcache.allow_failover=1
memcache.max_failover_attempts=100
memcache.chunk_size=32768
memcache.default_port=11211


그다음 apache 재시작


service apache2 restart


이제 phpinfo를 확인해보면 memcache 항목이 들어가있을것이다.


아주아주 간단한 php 테스트는 다음과 같다.



   <?php
  
   $memcache = memcache_connect('localhost', 11211);
  
   if ($memcache) {
           $memcache->set("str_key", "String to store in memcached");
           $memcache->set("num_key", 123);
  
           $object = new StdClass;
          $object->attribute = 'test';
          $memcache->set("obj_key", $object);
 
          $array = Array('assoc'=>123, 345, 567);
          $memcache->set("arr_key", $array);
 
          var_dump($memcache->get('str_key'));
          var_dump($memcache->get('num_key'));
          var_dump($memcache->get('obj_key'));
  }
  else {
          echo "Connection to memcached failed";
  }
  ?>


memcached를 죽일때는 kill로 죽이면 되고


실행할 때 옵션은 여러가지가 있는데 구글링 하길 바람...


내 pc 기준으로 memcached는 아래 경로에 위치하고


/var/tmp/memcached-1.4.21/memcached


시작 옵션은


memcached -d -u kihyun -m 256 127.0.0.1 -p 11211 -vv


로 주었다.