링크 ux 에서 phop 에 memcache 확장 추가=>서버 클 러 스 터 session 공유 문제 해결

4491 단어 sessionmemcache
1.libevent 설치(다운로드 주소:http://libevent.org/)
wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz
  • tar zxvf libevent-2.0.19-stable.tar.gz

  • cd libevent-2.0.19-stable
  • ./configure

  • make && make install
    2.memcache 설치(다운로드 주소:http://memcached.org/)
    wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
  • tar zxvf memcached-1.4.13.tar.gz

  • cd memcached-1.4.13
  • ./configure --prefix=/usr/local/memcached

  • make && make install
    3.시작 파일 만 들 기
    vim /etc/init.d/memcached
    #!/bin/sh
  • #

  • # memcached: MemCached Daemon
  • #

  • # chkconfig: 3 90 25
  • # description: MemCached Daemon

  • #
  • # Source function library.

  • . /etc/rc.d/init.d/functions
  • . /etc/sysconfig/network

  • #[ ${NETWORKING} = "no" ] && exit 0
  • #[ -r /etc/sysconfig/dund ] || exit 0

  • #. /etc/sysconfig/dund
  • #[ -z "$DUNDARGS" ] && exit 0

  • start()
  • {

  • echo -n $"Starting memcached: "
  • daemon $MEMCACHED -u daemon -d -m 128 -l 192.168.2.111 -p 11211

  • echo
  • }

  • stop()
  • {

  • echo -n $"Shutting down memcached: "
  • killproc memcached

  • echo  
  • }

  • MEMCACHED="/usr/local/memcached/bin/memcached"
  • [ -f $MEMCACHED ] || exit 1

  • # See how we were called.
  • case"$1"in

  • start)
  • start

  • ;;
  • stop)

  • stop
  • ;;

  • restart)
  • stop

  • sleep 3
  • start

  • ;;
  • *)

  • echo $"Usage: $0 {start|stop|restart}"
  • exit 1

  • esac  
  • exit 0

  • 실행 권한 추가:
    chmod 700 /etc/init.d/memcached
    시작:
    [root@localhost ~]# service memcached start
  • Starting memcached:                                        [  OK  ]

  • 주:첫 번 째 시작 오류:
    error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
    해결:ln-s/usr/local/lib/libevent-2.0.so.5/usr/lib 64/(내 가 사용 하 는 64 시스템 때문에)
    포트 가 검색 상태 에 있 는 지 확인 하기:
    [root@localhost ~]# netstat -ntlp | grep mem
  • tcp        0      0 192.168.2.111:11211         0.0.0.0:*                   LISTEN      22428/memcached

  • 부팅 추가:
    chkconfig --add memcached
    설정 성공 여부 보기:
    chkconfig --list |  grep memcached
    4.php 설치 memcahce modules(다운로드 주소:http://pecl.php.net/package/memcache)
    wget http://pecl.php.net/get/memcache-3.0.6.tgz
  • tar zxvf memcache-3.0.6.tgz  

  • cd memcache-3.0.6
  • phpize

  • ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
  • make && make install

  • 5.php.ini 편집
    extension=memcache.so
  • extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

  • memcache.allow_failover = 1
  • memcache.max_failover_attempts = 20

  • memcache.chunk_size = 8192
  • memcache.default_port = 11211

  • session.save_handler = memcache
  • session.save_path = "tcp://192.168.2.111:11211"

  • 주:extension=memcache.so--추가
  • extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"--수정
  • memcache.allow_failover=1--추가
  • memcache.max_failover_attempts=20--추가
  • memcache.chunk_size=8192--첨가
  • memcache.default_port=11211--추가
  • session.save_handler=memcache--수정
  • session.save_path = "tcp://192.168.2.111:11211"-추가,이 테스트 memcache 와 apache 는 모두 한 서버 에 있 습 니 다.이것 은 실제 필요 에 따라 주 소 를 설정 합 니 다.

  • 설정 완료
    apache 다시 시작
    6.클 라 이언 트 브 라 우 저 에서 테스트 에 접근 할 수 있 도록 phop 테스트 스 크 립 트 를 새로 만 듭 니 다.
    vi /usr/local/apache/htdocs/test.php
  • session_start();

  • if($_GET['act']=='write')
  • $_SESSION['name']='0009847';

  • elseif($_GET['act']=='read')
  • var_dump($_SESSION);

  • else
  • echo 'invalid argument';

  • ?>
    방문 하 다.http://192.168.2.111/test.php?act=write더욱 방문한다http://192.168.2.111/test.php?act=read
    결과:array(1){  ["name"]=>   string(7) "0009847" }
    phpinfo 보기:
    (완성)

    좋은 웹페이지 즐겨찾기