Tag: memcached

Memcached自动安装脚本

Posted by – 2010-07-22

今天写了一个小脚本。两点收获:
一、只要稍做修改就可以自动下载最新的开源软件包,像nginx就可以,难点在于得到下载用的url。这里采用的是elinks和wget。
二、用tar tf加上head命令就可以得到解压后的目录,没想到这么简单,大部分情况都是适用的,除非是有些变态软件解压后没建目录,直接解压到当前目录的那种。
脚本贴出,如下:

#!/bin/bash
# Memcached Auto Install
# Author: 楚霏
# Company: chengyongxu.com
# Create Date: 2010-07-22
# Last Update Date: 2010-07-22 17:49
#########################################################
#
# 在这一部分定义相关变量
#
#########################################################
# 下载链接地地址
LATEST_MEMCACHED_LINK=`elinks http://memcached.org | grep tar.gz | grep http | awk {'print $2'}`
LATEST_LIBEVENT_LINK=`elinks http://www.monkey.org/~provos/libevent/ | grep stable.tar.gz$ | awk {'print $2'} | sort -rn | head -n 1`
DOWNLOAD_DIR=/usr/local/src

# 最新的软件包名
REMOTE_MEMCACHED_PACKAGE_NAME=`elinks http://memcached.org | grep tar.gz | grep http | awk {'print $2'} | awk -F/ '{print $5}'`
REMOTE_LIBEVENT_PACKAGE_NAME=`elinks http://www.monkey.org/~provos/libevent/ | grep stable.tar.gz$ | awk {'print $2'} | sort -rn | head -n 1 | awk -F/ '{print $5}'`

#########################################################
#
# 检查系统环境
#
#########################################################
# 检查发行版并安装elinks,wget
DISTRIBUTION=`lsb_release -i | awk '{print $3}'`
case "$DISTRIBUTION" in
*CentOS*|*"Red Hat"*|*Fedora*)
    yum -y install elinks wget
    ;;
*)
    echo 'Do not support this distribution !' && exit 0
    ;;
esac

#########################################################
#
# 下载最新版软件
#
#########################################################
if [ ! -d $DOWNLOAD_DIR ]
then
        mkdir -p $DOWNLOAD_DIR
fi

if [ ! -e $DOWNLOAD_DIR/$REMOTE_MEMCACHED_PACKAGE_NAME ]
then
        wget -c $LATEST_MEMCACHED_LINK -P $DOWNLOAD_DIR
else
        echo "本地已有最新版本"
fi

if [ ! -e $DOWNLOAD_DIR/$REMOTE_LIBEVENT_PACKAGE_NAME ]
then
        wget -c $LATEST_LIBEVENT_LINK -P $DOWNLOAD_DIR
else
        echo "本地已有最新版本"
fi

#########################################################
#
# 安装
#
#########################################################
# 软件包解压后的目录
MEMCACHED_EXTRACT_DIR=`tar tf $DOWNLOAD_DIR/$REMOTE_MEMCACHED_PACKAGE_NAME | head -n 1`
LIBEVENT_EXTRACT_DIR=`tar tf $DOWNLOAD_DIR/$REMOTE_LIBEVENT_PACKAGE_NAME | head -n 1`
cd $DOWNLOAD_DIR

tar zxvf $REMOTE_LIBEVENT_PACKAGE_NAME
#echo "$REMOTE_MEMCACHED_PACKAGE_NAME"
#echo "$MEMCACHED_EXTRACT_DIR"
#echo "$DOWNLOAD_DIR/$MEMCACHED_EXTRACT_DIR"
#exit
cd $DOWNLOAD_DIR/$LIBEVENT_EXTRACT_DIR
./configure --prefix=/usr
make
make install

cd $DOWNLOAD_DIR

tar zxvf $REMOTE_MEMCACHED_PACKAGE_NAME

cd $DOWNLOAD_DIR/$MEMCACHED_EXTRACT_DIR
./configure --with-libevent=/usr
make
make install

echo "Memcached 成功安装!"

#########################################################
#
# 输出帮助信息
#
#########################################################
echo "\
启动示例:
/usr/local/bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11001 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程
-m是分配给Memcache使用的内存数量,单位是MB,我这里是1GB
-u是运行Memcache的用户,我这里是root
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址127.0.0.1
-p是设置Memcache监听的端口,我这里设置了11001,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

Have Fun !\
"

CentOS+memcached

Posted by – 2009-05-15

####################################
#CentOS+memcached
#Author:楚霏
#Date: 2009-5-15
#Env: Centos 5.3 x86_64
####################################
一、准备工作
环境:Centos 5.3 x86_64
所需软件:
libevent
memcached服务端与客户端
libmemcached
####################################
下载相关软件

cd /usr/local/src
wget http://monkey.org/~provos/libevent-1.4.10-stable.tar.gz
wget http://danga.com/memcached/dist/memcached-1.3.0.tar.gz
wget http://pecl.php.net/get/memcached-0.1.5.tgz
wget http://download.tangent.org/libmemcached-0.28.tar.gz

####################################
二、安装
(1)安装memcached的服务端支持库

cd /usr/local/src
tar xvf libevent-1.4.10-stable.tar.gz
cd libevent-1.4.10-stable
./configure --help
./configure
make
make install

(2)安装memcached服务器端

cd /usr/local/src
tar xvf memcached-1.3.0.tar.gz
./configure
make
make install
ln -s /usr/local/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2

(3)安装libmemcached

cd /usr/local/src
tar xvf libmemcached-0.28.tar.gz
cd libmemcached-0.28
./configure
make
make install

(4)让php支持memcached

cd /usr/local/src
tar xvf memcached-0.1.5.tgz
cd memcached-0.1.5
/usr/local/php-fcgi/bin/phpize
./configure --help
./configure --enable-memcache --with-php-config=/usr/local/php-fcgi/bin/php-config
make
make test
make install
cp /usr/local/php-fcgi/lib/php/extensions/no-debug-non-zts-200*/memcached.so /usr/local/php-fcgi/ext/
echo "extension=memcached.so" >> /usr/local/php-fcgi/etc/php.ini
#测试一下是否已加载上
/usr/local/php-fcgi/bin/php-cgi -m |grep mem

(5)启动
#启动memcached
#看一下启动参数

memcached --help
memcached -d -u root -m 1000 -l 127.0.0.1 -p 11211 -P /tmp/memcached.pid

#重启一下web服务器

service nginx restart