Thursday, December 8, 2011

How to Install MemCached.1.4.10 with Sasl


 How to Install MemCached.1.4.10 with Sasl

 

================================================================================
  cd /usr/src/
  1. wget http://www.monkey.org/~provos/libevent-1.4.9-stable.tar.gz  
  2. tar xvfz libevent-1.4.9-stable.tar.gz  
  3. cd libevent-1.4.9-stable  
  4. ./configure; make; make install 
 ================================================================================

 cd /usr/src/
  wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
 tar -xzf memcached-1.4.10.tar.gz
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain
cd memcached-1.4.10
./configure --enable-sasl
make
make install
memcached -Bbinary -d -m 1024 10.0.127.154 -p 11211 -u nobody




Run memcached as service Create memcached config file:

 vi /etc/memcached.conf  

================================================================================
#Memory a user can use
-m 16
# default port
-p 11211
# user to run daemon nobody/apache/www-data
-u nobody
# only listen locally
-l 127.0.0.1  


================================================================================
 touch /etc/init.d/memcached
chmod 
+/etc/init.d/memcached 

================================================================================

 #!/bin/bash
#
# memcached This shell script takes care of starting and stopping
# standalone memcached.
#
. /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 -
$"Starting $DESC: "daemon $DAEMONBOOTSTRAP $DAEMONCONF
RETVAL
=$?
$RETVAL -eq 0 ] && touch $PIDFILEecho
return 
$RETVAL}stop() {
echo -
$"Shutting down $DESC: "killproc $NAME
RETVAL
=$?
echo
$RETVAL -eq 0 ] && rm -f $PIDFILEreturn $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  


================================================================================
touch /usr/local/bin/start-memcached
chmod 
+/usr/local/bin/start-memcached  



================================================================================
#!/usr/bin/perl -w
# start-memcached
use strict;
if ($> != 
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] directivesmy $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 = <PIDHANDLE>;close PIDHANDLE;chomp $localpid;
if (-
"/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";
}  


==================

[root@test init.d]# /etc/init.d/memcached restartShutting down memcached: [ OK ]Starting memcached: [ OK ]  


=================
# /sbin/chkconfig memcached on# /sbin/chkconfig --list | grep memcachedmemcached 0off 1off 2on 3on 4on 5on 6off  

==========================================================================

No comments:

Post a Comment