该脚本基于阿里云服务器安装脚本,并只能运用于centos / aliyun os,该脚本使用时,需要与阿里云安装脚本的install.sh放在同一目录下。有缘人切忌乱用:

 #! /bin/bash
#by dxd in -
#only suit for centos/aliyun os, and based on aliyun install script PHP_EXT_SOURCE_PATH=""
PHP_BIN_PATH=/alidata/server/php/bin DOWNLOAD_LIBEVENT_URL=http://download.verymall.cn/libevent-1.4.14b.tar.gz
INSTALL_LIBEVENT_PATH=/alidata/lib/libevent
NEW_LIBEVENT="" DOWNLOAD_MEMCACHE_URL=http://download.verymall.cn/memcached-1.4.25.zip
INSTALL_MEMCACHE_PATH=/alidata/server/memcache
MEMCACHE_PORT=
MEMCACHE_PID_FILE=/tmp/memcached.pid CURR_PATH=$(pwd); DOWNLOAD_LIBMEMCACHED_URL=http://download.verymall.cn/libmemcached-1.0.18.zip
INSTALL_LIBMEMCACHED_PATH=/alidata/lib/libmemcached DOWNLOAD_PHP_MEMCACHED=http://download.verymall.cn/php_memcached-2.2.0.zip
PHP_INI_PATH=/alidata/server/php/etc/php.ini #check current path auth
if [ ! -w "$CURR_PATH" ]
then
echo "no write"
exit
fi #check user name
if [ "$(whoami)" != "root" ]
then
echo "please run as root"
exit
fi #check current path
if [ "$(ls | grep 'install.sh')" = "" ]
then
echo "please put this script where install.sh locates"
exit
fi #select php ext path
for dir in $(ls)
do
TMP_PATH=$CURR_PATH/$dir/ext
if [ -d $TMP_PATH ]
then
PHP_EXT_SOURCE_PATH=$TMP_PATH
break
fi
done
if [ -z "$PHP_EXT_SOURCE_PATH" ]
then
echo "could not find php install path"
exit
fi echo -n "php ext source path is $PHP_EXT_SOURCE_PATH , (Y/N): "
read USER_ANSWER
until [ "$USER_ANSWER" = "Y" ] || [ "$USER_ANSWER" = "y" ]
do
if [ "$USER_ANSWER" = "N" ] || [ "$USER_ANSWER" = "n" ]
then
echo "php ext source path is fault, then exit"
exit
fi echo -n "php ext source path is $PHP_EXT_SOURCE_PATH , (Y/N): "
read USER_ANSWER
done #maybe gcc is not installed,but it is rare, I'm not going to handle this situation
which gcc > /dev/null >&
if [ "$?" != "" ]
then
echo "please install gcc first"
exit
fi #check is port occupied
if [ -n "$(netstat -ano | grep $MEMCACHE_PORT)" ]
then
echo "PORT $MEMCACHE_PORT is occupied, please check"
if [ -f $MEMCACHE_PID_FILE ]
then
echo 'maybe by old memcache server'
echo "PID: $(cat $MEMCACHE_PID_FILE)"
fi
exit
fi #test zip if exist
unzip > /dev/null >&
if [ "$?" != "" ] #not tested yet!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
then
yum install unzip
fi #clear old memcache files
if [ -d $INSTALL_MEMCACHE_PATH ]
then
rm -rf $INSTALL_MEMCACHE_PATH > /dev/null >&
if "$?"=""
then
echo "$INSTALL_MEMCACHE_PATH could not be removed"
exit
fi
fi if [ -d $INSTALL_LIBMEMCACHED_PATH ]
then
rm -rf $INSTALL_LIBMEMCACHED_PATH > /dev/null >&
if "$?"=""
then
echo "$INSTALL_LIBMEMCACHED_PATH could not be removed"
exit
fi
fi #create lib path
mkdir /alidata/lib > /dev/null >& #install libevent
libevent=$(ldconfig -p | grep 'libevent')
if [ -z "$libevent" ] #not tested yet!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
then
rm -rf $INSTALL_LIBEVENT_PATH > /dev/null >&
mkdir $INSTALL_LIBEVENT_PATH
chmod -R $INSTALL_LIBEVENT_PATH rm -f $CURR_PATH/libevent-1.4.14b.tar.gz
rm -rf $CURR_PATH/libevent-1.4.14b
wget $DOWNLOAD_LIBEVENT_URL
tar -zxvf libevent-1.4.14b.tar.gz
chmod -R ./libevent-1.4.14b
cd ./libevent-1.4.14b
./configure --prefix=$INSTALL_LIBEVENT_PATH
make
make install NEW_LIBEVENT=""
fi cd $CURR_PATH #install memcache
rm -f $CURR_PATH/memcached-1.4..zip
rm -rf $CURR_PATH/memcached-1.4.
wget $DOWNLOAD_MEMCACHE_URL
unzip memcached-1.4..zip
chmod -R ./memcached-1.4.
cd ./memcached-1.4.
if [ $NEW_LIBEVENT="" ] #install libevent in this script
then
./configure --prefix=$INSTALL_MEMCACHE_PATH --with-libevent=$INSTALL_LIBEVENT_PATH
else
./configure --prefix=$INSTALL_MEMCACHE_PATH
fi
make
make install #start memcache
rm -f /tmp/memcached.pid
$INSTALL_MEMCACHE_PATH/bin/memcached -d -m -u root -p $MEMCACHE_PORT -c -P $MEMCACHE_PID_FILE cd $CURR_PATH #install libmemcached
rm -f $CURR_PATH/libmemcached-1.0..zip
rm -rf $CURR_PATH/libmemcached-1.0.
wget $DOWNLOAD_LIBMEMCACHED_URL
unzip libmemcached-1.0..zip
chmod -R ./libmemcached-1.0.
cd ./libmemcached-1.0.
mkdir $INSTALL_LIBMEMCACHED_PATH
chmod -R $INSTALL_LIBMEMCACHED_PATH
./configure --prefix=$INSTALL_LIBMEMCACHED_PATH --with-memcached
make
make install cd $CURR_PATH #install php extension Memcached
rm -f $CURR_PATH/php_memcached-2.2..zip
rm -rf $CURR_PATH/memcached-2.2.
rm -rf $PHP_EXT_SOURCE_PATH/memcached-2.2.
wget $DOWNLOAD_PHP_MEMCACHED
unzip php_memcached-2.2..zip
chmod -R ./memcached-2.2.
mv $CURR_PATH/memcached-2.2. $PHP_EXT_SOURCE_PATH/memcached-2.2.
cd $PHP_EXT_SOURCE_PATH/memcached-2.2.
$PHP_BIN_PATH/phpize
./configure --enable-memcached --with-php-config=$PHP_BIN_PATH/php-config --with-libmemcached-dir=$INSTALL_LIBMEMCACHED_PATH --disable-memcached-sasl
make
make install #write php.ini
memcached_exist=$(cat $PHP_INI_PATH | grep 'memcached.so')
if [ -z "$memcached_exist" ]
then
echo "extension=memcached.so" >> $PHP_INI_PATH
fi cd $CURR_PATH #restart php fpm
/etc/init.d/php-fpm restart echo "install successfully"
exit

自动安装memcached服务端与PHP扩展Memcached的更多相关文章

  1. 自动安装Redis服务端与PHP扩展Redis

    该脚本基于阿里云服务器安装脚本,并只能运用于centos / aliyun os,该脚本使用时,需要与阿里云安装脚本的install.sh放在同一目录下.有缘人切忌乱用: #! /bin/bash # ...

  2. 编译安装rabbitmq服务端

    有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装   总括: 需要以下步骤:   1.安装erlange.因为 ...

  3. Windows安装VNC服务端

    下载VNC服务端 由于服务器在IDC机房,只能使用系统自带远程桌面连接到服务器进行安装VPC服务端 但在安装过程发现,如果是通过远程桌面连接到服务器进行安装,VNC Mirror Driver会报错无 ...

  4. 多个Linux发行版安装ss服务端

    本文仅做技术探讨,请在遵守相应的法律法规的前提下使用. Centos 7一键安装脚本 简单快捷,随机生成密码,默认端口默认加密类型 bash <(curl -s http://morning.w ...

  5. Memcached服务端自动启动(转载)

    Memcached服务端自动启动 原文链接:http://www.cnblogs.com/technet/archive/2011/09/11/2173485.html  经测试,要使得Memcach ...

  6. suse安装svn服务端和客户端的使用

    suse安装svn服务端 一. 安装服务端 配置网络安装源(suse11sp1为例) 新建11.1.repo11.1为软件源名称,可自定义文件并添加如下内容后保存 linux-e0xg:/etc/zy ...

  7. centos 7安装vnc服务端&vnc客户端连接

    前言 工作需求,需要用到vnc,介绍一下相关内容. 安装vnc服务端 在执行其他相关的之前,需要先安装一下vnc的服务端,命令如下: yum install tigervnc-server 配置vnc ...

  8. 安装oracle服务端之后再安装oracle客户端导致sqlplus命令无法使用??

    首先小编自述一下所遇到的问题: 昨天在已经安装 oracle 服务端的 win7 X64 主机上安装 oracle client 之后,发现我的sqlplus命令无法用了??经过百度,都说我服务没有开 ...

  9. CentOS 7.4安装telnet服务端

    CentOS 7.4安装telnet服务端 安装xinetd服务 # yum -y install xinetd 安装telnet-server # yum -y install telnet-ser ...

随机推荐

  1. php提供service总结---wsdl篇

    越来越多的架构偏向于面向接口和面向服务的设计了,当我们把抽象的落地变为实际的时候,我们感觉到了代码的厚度.而当我们把具体的业务再进一步抽象,我们就能发现藏在细节深处的回馈. php可以提供servic ...

  2. Windows平台下的node.js安装

    Windows平台下的node.js安装 直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了 测试安装是否成功: 在命令行输入 node –v 应 ...

  3. 【转】简单十步让你全面理解SQL

    简单十步让你全面理解SQL 很多程序员认为SQL是一头难以驯服的野兽.它是为数不多的声明性语言之一,也因为这样,其展示了完全不同于其他的表现形式.命令式语言. 面向对象语言甚至函数式编程语言(虽然有些 ...

  4. 百度地图API的自动定位路线查询

    功能如下:打开时自动定位到当前位置(浏览器可能会屏蔽自动定位功能,建议手机查看,或直接打开地址:http://1.jingcode.applinzi.com/test2.html),输入目的地点击搜索 ...

  5. 微信企业号 JS-SDK:上传图片

    微信的JS-SDK提供了微信客户端相关的功能,如:拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫等微信特有的能力,为微信用户提供更优质的网页体验.这里将会介绍如何通过调用JS ...

  6. 驱动05.lcd设备驱动程序

    参考s3c2410fb.c总结出框架 1.代码分析 1.1 入口函数 int __devinit s3c2410fb_init(void) { return platform_driver_regis ...

  7. 使用代码分析来分析托管代码质量 之 CA2200

    vs的代码分析功能:vs菜单 “生成”下面有“对解决方案运行代码分析 Alt+F11”和“对[当前项目]运行代码分析”2个子菜单. 使用这个功能,可以对托管代码运行代码分析,发现代码中的缺陷和潜在问题 ...

  8. Apache2.2下载及安装

    php5.5 + apache2.4 安装配置图文步骤 http://wenku.baidu.com/link?url=8OHaJATVBHP5QrD-J2pTkmBOjY-ZG5cDngKMz7wl ...

  9. overflow属性及其在ios下卡顿问题解决

    overflow属性:http://www.w3school.com.cn/cssref/pr_pos_overflow.asp overflow:scroll/auto;在手机页面滑动不流畅问题: ...

  10. C++引用(&)详解

    C++引用详解 引用的概念 引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名: 如下:定义引用ra,它是变量a的引 ...