自动安装memcached服务端与PHP扩展Memcached
该脚本基于阿里云服务器安装脚本,并只能运用于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的更多相关文章
- 自动安装Redis服务端与PHP扩展Redis
该脚本基于阿里云服务器安装脚本,并只能运用于centos / aliyun os,该脚本使用时,需要与阿里云安装脚本的install.sh放在同一目录下.有缘人切忌乱用: #! /bin/bash # ...
- 编译安装rabbitmq服务端
有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装 总括: 需要以下步骤: 1.安装erlange.因为 ...
- Windows安装VNC服务端
下载VNC服务端 由于服务器在IDC机房,只能使用系统自带远程桌面连接到服务器进行安装VPC服务端 但在安装过程发现,如果是通过远程桌面连接到服务器进行安装,VNC Mirror Driver会报错无 ...
- 多个Linux发行版安装ss服务端
本文仅做技术探讨,请在遵守相应的法律法规的前提下使用. Centos 7一键安装脚本 简单快捷,随机生成密码,默认端口默认加密类型 bash <(curl -s http://morning.w ...
- Memcached服务端自动启动(转载)
Memcached服务端自动启动 原文链接:http://www.cnblogs.com/technet/archive/2011/09/11/2173485.html 经测试,要使得Memcach ...
- suse安装svn服务端和客户端的使用
suse安装svn服务端 一. 安装服务端 配置网络安装源(suse11sp1为例) 新建11.1.repo11.1为软件源名称,可自定义文件并添加如下内容后保存 linux-e0xg:/etc/zy ...
- centos 7安装vnc服务端&vnc客户端连接
前言 工作需求,需要用到vnc,介绍一下相关内容. 安装vnc服务端 在执行其他相关的之前,需要先安装一下vnc的服务端,命令如下: yum install tigervnc-server 配置vnc ...
- 安装oracle服务端之后再安装oracle客户端导致sqlplus命令无法使用??
首先小编自述一下所遇到的问题: 昨天在已经安装 oracle 服务端的 win7 X64 主机上安装 oracle client 之后,发现我的sqlplus命令无法用了??经过百度,都说我服务没有开 ...
- CentOS 7.4安装telnet服务端
CentOS 7.4安装telnet服务端 安装xinetd服务 # yum -y install xinetd 安装telnet-server # yum -y install telnet-ser ...
随机推荐
- Linux历史上线程的3种实现模型
一.概述 这里以Linux为例.Linux历史上,最开始使用的线程是LinuxThreads,但Li ...
- 本地Eclipse连接HDFS进行简单的文件操作
昨天总结了一点自己在搭建Hadoop完全分布式环境过程中遇到的几个小问题以及解决方案,今天在搭建成功的环境中进行了简单的文件操作,包括:文件目录的创建.文件的创建.本地文件的上传.文件的重命名.文件的 ...
- 使用纯css代码实现div的“回”字型“叠放”效果
正如大家所知道的那样,div是一个块级元素,也是网页编写过程中使用频率最高的一个元素,通过不同的样式控制可以实现一些最常见的页面效果,当然也可以实现一些比较复杂的页面效果,这里就展示一个本人面试过程中 ...
- Js 使用new关键字调用函数和直接调用函数的区别
最近开始学习js,在看到书上的一个例子时,引发了我的一系列思考: 书上例子: function Person(name,age,job){ var o =new Object(); o.name=na ...
- template template parameter
#include <iostream> using namespace std; template<typename T> class A { }; template<t ...
- openssh-clients(CentOS 7 自带的SSH客户端)
OpenSSH 有自带的服务端 openssh-server(sshd服务) 和 客户端 openssh-clients(ssh命令),平时使用SSH远程登陆Linux都是在本地Windows上使用P ...
- 【NOIP2014】Day1题解+代码
Day1 T1 签到题,模拟一下随便写就能过. 不过小心像我一样表打错傻逼的调了10min. #include <algorithm> #include <iostream> ...
- Jquery Easyui与Jquery Bootstrap(Metronic Bootstrap)的简单比较
1,通常来看WEB前端用 bootstrap 比较好,后台用EASYUI比较好.Easyui适合工厂企业的管理系统如ERP,CRM之类的,Bootstrap适用于多屏跨设备浏览. 简言之,一个适合上班 ...
- hdu1722
链接 一份切成q份需要q刀,切成p份需要p刀:切的部分总会有重复,即gcd(p,q),减去重复部分就是要切的刀数 #include<stdio.h> int gcd(int n,int m ...
- 【IE6的疯狂之五】div遮盖select的解决方案
IE6以及一下版本下,选择框Select会覆盖Div中的内容一般情况下,可以将显示的内容放到Iframe中,然后再显示框架内的内容.由于Iframe的可以显示在Select上层,就可以解决这个问题.不 ...