How to install memcached in WHM/Cpanel version 2

This tutorial is originally comes from : http://wiki.beyondhosting.net/Memcached_and_PHP_with_cPanel

I make it as some notes for me, just in case I forgot it, I can reopen this tutorial.

 

Installing required packages
Installing memcached and required library using YUM :

# yum install libevent libevent-devel gcc make -y

 

Download and install memcached from source
Open the memcache official website, and download the latest version.

# wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
# tar xvf memcached-1.4.5.tar.gz
# cd memcached-1.4.5
# ./configure && make && make install

 

Install memcached configuration
Use your favourite editor, and open the /etc/memcache.conf, type the following :

# Memory a usar
-m 16
# Default port
-p 11211
# User to run Daemon nobody/www-data/apache
-u nobody
# Only listen locally
-l 127.0.0.1

Or you can download it here.
( At some case, we have to type it using shell, and when we type it in Microsoft Windows, and upload it to the server, it will be error/unreadable. So instead of typing, I’m uploading this file so you can download and upload it to your server.)

 

Install initiation script:

# touch /etc/init.d/memcached
# chmod +x /etc/init.d/memcached

Open the /etc/init.d/memcached using your favourite editor, and type in :

#!/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.
# Kita memerlukan comment ini untuk menjalankan chkconfig
# 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

Or you can download it here

 

Install memcache monitoring script

Create the start-memcache script

# touch /usr/local/bin/start-memcached
# chmod +x /usr/local/bin/start-memcached

Open the /usr/local/bin/start-memcached with your favourite editor and type in :

#!/usr/bin/perl -w
# start-memcached
# 2003/2004 – Jay Bonci <[email protected]>
# 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 = <PIDHANDLE>;
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”;
}

 

Or you can download it here.

Lets start the memcached Daemon

Now we will start the memcache Daemon, sometimes it’s okay if it says FAILED

# /etc/init.d/memcached restart
# Shutting down memcached:  [ OK ]
# Starting memcached: [ OK]

 

Make sure it’s running :

# ps aux | grep memcache
#nobody 5966 0.5 0.3 18248 16444 pts/0 S 13:55 0:00 /usr/local/bin/memcached -u root -m 16 -p 11211 -u nobody -l 127.0.0.1

Set memcached to run at startup using chkconfig:

# /sbin/chkconfig memcached on
or
# chkconfig memcached on

 

PHP Memcache extension

Next we have to download the latest stable memcache from the official website :

# wget http://pecl.php.net//get/memcache-3.0.5.tgz
# tar xvf memcache-3.0.5.tgz
# cd memcache-3.0.5
# phpize
# ./configure && make && make install

 

Searching the php configuration file

Create a phpinfo.php file using your favourite editor :

# cd ~
# nano phpinfo.php
<? phpinfo(); ?>^o
^x
#php -f phpinfo.php | grep “Loaded Configuration File”
# Loaded configuration file => /usr/local/lib/php.ini

Now we have the location of the php.ini, then open it using your favourite text editor . Find the “Dynamic Extension” section, and add this :

extension=memcache.so

Usually there is a group of extension line, add it before the zend or another extension.

 

Restarting the Apache

To start your new memcache configuration, restart the apache

# service httpd restart

 

Testing the added memcache extension

#php -f phpinfo.php | grep “memcache support”

If the result is like this : memcache support => enabled. Then the installation is succeed.

2 Replies to “How to install memcached in WHM/Cpanel version 2”

    1. hehe….
      sengaja diblokir.

      1. Banyak yang copy paste artikel dari luar negeri.
      2. Kalau di copy, trus dipaste pake notepad, kadang error, jadi didownload saja filenya, untuk mencegah buang-buang waktu. Nanti tinggal diedit pakai Vim atau Nano 😀

Leave a Reply

Your email address will not be published. Required fields are marked *