memcached 서버구성 http://memcached.org/ 필요 패키지 설치 [root@localhost ~]# yum install libevent-devel [root@localhost ~]# tar -zxvf memcached-1.x.x.tar.gz [root@localhost ~]# cd memcached-1.x.x [root@localhost ~]# ./configure --with-libevent=/usr/lib64/ [root@localhost ~]# make && make test && make install [root@localhost ~]# vi /etc/memcached.conf -------------------------------------------- # run as a daemon -d # user to run daemon nobody/apache/www-data -u nobody #Memory a usar -m 512 # default port -p 11211 #max simultaneous connections -c 9216 # only listen locally #-l 127.0.0.1 -------------------------------------------- 실행스크립트 및 데몬스크립트 [root@localhost ~]# touch /etc/init.d/memcached [root@localhost ~]# chmod +x /etc/init.d/memcached ------------------------------------------------------------------------ #!/bin/bash # # memcached This shell script takes care of starting and stopping # standalone memcached. # # chkconfig: - 80 12 # description: memcached is a high-performance, distributed memory # object caching system, generic in nature, but # intended for use in speeding up dynamic web # applications by alleviating database load. # processname: memcached # config: /etc/memcached.conf # Source function library. . /etc/rc.d/init.d/functions PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/bin/memcached DAEMONBOOTSTRAP=/usr/local/bin/start-memcached DAEMONCONF=/etc/memcached.conf NAME=memcached DESC=memcached PIDFILE=/var/run/$NAME.pid [ -x $DAEMON ] || exit 0 [ -x $DAEMONBOOTSTRAP ] || exit 0 RETVAL=0 start() { echo -n $"Starting $DESC: " daemon $DAEMONBOOTSTRAP $DAEMONCONF RETVAL=$? [ $RETVAL -eq 0 ] && touch $PIDFILE echo return $RETVAL } stop() { echo -n $"Shutting down $DESC: " killproc $NAME RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $PIDFILE return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start RETVAL=$? ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac exit $RETVAL ------------------------------------------------------------------------ [root@localhost ~]# touch /usr/local/bin/start-memcached [root@localhost ~]# chmod +x /usr/local/bin/start-memcached ------------------------------------------------------------------------------ #!/usr/bin/perl -w # start-memcached # 2003/2004 - Jay Bonci# This script handles the parsing of the /etc/memcached.conf file # and was originally created for the Debian distribution. # Anyone may use this little script under the same terms as # memcached itself. use strict; if ($> != 0 and $< != 0) { print STDERR "Only root wants to run start-memcached.\n"; exit; } my $etcfile = shift || "/etc/memcached.conf"; my $params = []; my $etchandle; # This script assumes that memcached is located at /usr/bin/memcached, and # that the pidfile is writable at /var/run/memcached.pid my $memcached = "/usr/local/bin/memcached"; my $pidfile = "/var/run/memcached.pid"; # If we don't get a valid logfile parameter in the /etc/memcached.conf file, # we'll just throw away all of our in-daemon output. We need to re-tie it so # that non-bash shells will not hang on logout. Thanks to Michael Renner for # the tip my $fd_reopened = "/dev/null"; sub handle_logfile { my ($logfile) = @_; $fd_reopened = $logfile; } sub reopen_logfile { my ($logfile) = @_; open *STDERR, ">>$logfile"; open *STDOUT, ">>$logfile"; open *STDIN, ">>/dev/null"; $fd_reopened = $logfile; } # This is set up in place here to support other non -[a-z] directives my $conf_directives = { "logfile" => \&handle_logfile }; if (open $etchandle, $etcfile) { foreach my $line (<$etchandle>) { $line =~ s/\#.*//go; $line = join ' ', split ' ', $line; next unless $line; next if $line =~ /^\-[dh]/o; if ($line =~ /^[^\-]/o) { my ($directive, $arg) = $line =~ /^(.*?)\s+(.*)/; $conf_directives->{$directive}->($arg); next; } push @$params, $line; } } unshift @$params, "-u root" unless (grep $_ eq '-u', @$params); $params = join " ", @$params; if (-e $pidfile) { open PIDHANDLE, "$pidfile"; my $localpid = ; close PIDHANDLE; chomp $localpid; if (-d "/proc/$localpid") { print STDERR "memcached is already running.\n"; exit; } else { `rm -f $localpid`; } } my $pid = fork(); if ($pid == 0) { reopen_logfile($fd_reopened); exec "$memcached $params"; exit(0); } elsif (open PIDHANDLE,">$pidfile") { print PIDHANDLE $pid; close PIDHANDLE; } else { print STDERR "Can't write pidfile to $pidfile.\n"; } ------------------------------------------------------------------------------ # /etc/init.d/memcached restart Shutting down memcached: [ OK ] Starting memcached: [ OK ] 데몬 확인 [root@localhost ~]# ps ax | grep memcach 14688 pts/0 Sl 0:00 /usr/local/bin/memcached -u root -u nobody -m 512 -p 11211 -c 9216 client (web서버) memcache 모듈 설치 # wget http://pecl.php.net/get/memcache-2.2.4.tgz # tar xzfv memcache-2.2.4.tgz # cd memcache-2.2.4 # phpize # ./configure --enable-memcache # make # make install # vi /usr/local/apache/conf/php.ini extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/" extension=memcache.so [Session] ; Handler used to store/retrieve data. ;session.save_handler = files session.save_handler = memcache session.save_path = "tcp://192.168.0.101:11211" <--- memcached 서버 IP 저장 후 apache restart
2015년 9월 6일 일요일
[memcache] 서버구성 (memcached)
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기