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

 #! /bin/bash
#by dxd in -
#only suit for centos/aliyun os, and based on aliyun install script CURR_PATH=$(pwd); PHP_EXT_SOURCE_PATH=""
PHP_BIN_PATH=/alidata/server/php/bin DOWNLOAD_TCL_URL=http://download.verymall.cn/tcl8.6.1.zip
INSTALL_TCL_PATH=/alidata/lib/tcl DOWNLOAD_REDIS_URL=http://download.verymall.cn/redis-3.0.3.zip
DOWNLOAD_REDIS_SCRIPT_URL=http://download.verymall.cn/redis.script
INSTALL_REDIS_PATH=/alidata/server/redis REDIS_PORT= DOWNLOAD_REDIS_EXT_URL=http://download.verymall.cn/phpredis.zip
PHP_INI_PATH=/alidata/server/php/etc/php.ini function check_curr_path_auth()
{
if [ ! -w "$CURR_PATH" ]
then
echo "no write"
exit
fi
} function check_user_name()
{
if [ "$(whoami)" != "root" ]
then
echo "please run as root"
exit
fi
} function is_curr_path_leagal()
{
if [ "$(ls | grep 'install.sh')" = "" ]
then
echo "please put this script where install.sh locates"
exit
fi
} function get_php_ext_source_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
} function check_gcc()
{
which gcc > /dev/null >&
if [ "$?" != "" ]
then
echo "please install gcc first"
exit
fi
} function check_redis_port()
{
if [ -n "$(lsof -i:$REDIS_PORT)" ]
then
echo "PORT $REDIS_PORT is occupied"
exit
fi
} function check_unzip() #not tested yet!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{
unzip > /dev/null >&
if [ "$?" != "" ]
then
yum install unzip
fi
} function check_alidata_path()
{
if [ ! -d /alidata ]
then
mkdir /alidata
fi if [ ! -d /alidata/lib ]
then
mkdir /alidata/lib
fi if [ ! -d /alidata/server ]
then
echo "alidata server has not been installed"
exit
fi
} function install_tcl_lib()
{
if [ -n "$(ldconfig -p | grep 'libtcl8.6')" ]
then
return
fi if [ -d $INSTALL_TCL_PATH ]
then
rm -rf $INSTALL_TCL_PATH
fi
mkdir $INSTALL_TCL_PATH
chmod -R $INSTALL_TCL_PATH if [ -d ./tcl8.6.1 ]
then
rm -rf ./tcl8.6.1
fi if [ -a ./tcl8.6.1.zip ] && [ -n "$(md5sum ./tcl8.6.1.zip | grep 'f3d76fa9f96eab32e2f2655dd48a21a8')" ]
then
echo "tcl8.6.1.zip exist"
else
rm -f ./tcl8.6.1.zip
wget $DOWNLOAD_TCL_URL
fi unzip ./tcl8.6.1.zip
chmod -R ./tcl8.6.1
cd ./tcl8.6.1/unix
./configure --prefix=$INSTALL_TCL_PATH --without-tzdata --mandir=/usr/share/man $([ $(uname -m) = x86_64 ] && echo --enable-64bit)
make
sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@" -e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" -i tclConfig.sh
make install
make install-private-headers
ln -v -sf tclsh8. /usr/bin/tclsh
ln -s $INSTALL_TCL_PATH/lib/libtcl8..so /usr/lib/libtcl8..so
chmod $INSTALL_TCL_PATH/lib/libtcl8..so
chmod -v /usr/lib/libtcl8..so
ldconfig cd $CURR_PATH
} function install_redis()
{
if [ -d $INSTALL_REDIS_PATH ]
then
rm -rf $INSTALL_REDIS_PATH
fi
mkdir $INSTALL_REDIS_PATH
chmod -R $INSTALL_REDIS_PATH if [ -d ./redis-3.0. ]
then
rm -rf ./redis-3.0.
fi if [ -a ./redis-3.0..zip ] && [ -n "$(md5sum ./redis-3.0.3.zip | grep '05c5e89354bd14f1eb2dfbc88dec24ae')" ]
then
echo "redis-3.0.3.zip exist"
else
rm -f ./redis-3.0..zip
wget $DOWNLOAD_REDIS_URL
fi unzip ./redis-3.0..zip
chmod -R ./redis-3.0.
cd ./redis-3.0.
make
make install sed "s/port 6379/port $REDIS_PORT/g" ./redis.conf > $INSTALL_REDIS_PATH/redis.conf
sed -i "s/daemonize no/daemonize yes/g" $INSTALL_REDIS_PATH/redis.conf > /dev/null >& #start up redis
redis-server $INSTALL_REDIS_PATH/redis.conf cd $CURR_PATH
} function install_dos2unix()
{
which dos2unix > /dev/null >&
if [ "$?" != "" ]
then
yum install dos2unix
fi
} function create_init_script()
{
rm -f /etc/rc.d/init.d/redis
wget $DOWNLOAD_REDIS_SCRIPT_URL -O /etc/rc.d/init.d/redis
chmod /etc/rc.d/init.d/redis
chmod +x /etc/rc.d/init.d/redis
dos2unix /etc/rc.d/init.d/redis chkconfig --add redis
chkconfig --level redis on service redis restart
} function install_php_redis_ext()
{
if [ -d ./phpredis ]
then
rm -rf ./phpredis
fi if [ -d $PHP_EXT_SOURCE_PATH/ext/redis ]
then
rm -rf $PHP_EXT_SOURCE_PATH/ext/redis
fi if [ -a ./phpredis.zip ] && [ -n "$(md5sum ./phpredis.zip | grep '1a6eef0989cab3b34eebc45e3f6d9b71')" ]
then
echo "php redis exist"
else
wget $DOWNLOAD_REDIS_EXT_URL
fi unzip ./phpredis.zip
chmod -R ./phpredis
mv ./phpredis $PHP_EXT_SOURCE_PATH/redis cd $PHP_EXT_SOURCE_PATH/redis
$PHP_BIN_PATH/phpize
./configure --with-php-config=$PHP_BIN_PATH/php-config
make
make install #write php.ini
redis_exist=$(cat $PHP_INI_PATH | grep 'redis.so')
if [ -z "$redis_exist" ]
then
echo "extension=redis.so" >> $PHP_INI_PATH
fi cd $CURR_PATH
} function restart_php_fpm()
{
/etc/init.d/php-fpm restart
} check_curr_path_auth
check_user_name
is_curr_path_leagal
get_php_ext_source_path
check_gcc
check_redis_port
check_unzip
check_alidata_path
install_tcl_lib
install_redis
install_dos2unix
create_init_script
install_php_redis_ext
restart_php_fpm echo "redis install successfully"
exit

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

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

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

  2. 安装redis服务端

    1. redis服务端和客户端的安装 [root@xxx ~]# cd /usr/local/src [root@xxx src]# wget http://download.redis.io/rel ...

  3. 编译安装rabbitmq服务端

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

  4. Redis01 Redis服务端环境搭建

    1 前提准备 下载 VM centos6 安装包,安装好虚拟系统 2 安装远程连接工具 工具获取 2.1 SecureCRT.Xshell 连接远程服务器 2.2 WinSCP 向远程服务器发送文件 ...

  5. Windows安装VNC服务端

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

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

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

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

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

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

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

  9. 怎样连接REDIS服务端

    怎样连接REDIS服务端 REDIS服务器是TCP/IP SERVER,因此客户端要访问,必须先同服务器建立SOCKET连接,然后才可以发送各种REDIS COMMAND(指令). 首先要引用单元文件 ...

随机推荐

  1. JS高程5.引用类型(6)Array类型的位置方法,迭代方法,归并方法

    一.位置方法 ECMAScript5为数组实例添加了两个位置:indexOf()和 lastIndexOf().这两个方法接收两个参数:要查找的项和(可选的)表示查找起点位置的索引(如在数组[7,8, ...

  2. HDU--1006

    题目介绍 Problem Description The three hands of the clock are rotating every second and meeting each oth ...

  3. webStorm支持.wxml文件高亮显示

    微信小程序官方说明需要在微信开发者工具中开发运行,但这个工具着实不咋地. 我是使用webstrom编辑,然后在微信开发者工具中热加载查看效果,因为webstrom默认并不支持*.wxml,添加使用xm ...

  4. WebService一、数据交互

    调用webservice总结:  1.加入第三方的jar包 Ksoap2-android-XXX    2.访问响应的webservice的网站,查看响应的信息,得到nameSpace,methodN ...

  5. 百度的hao123.com篡改浏览器首页,解决办法

    快捷方式右键找到chrome.exe, 把chorme.exe修改成别的名字例如 chromeFuckHao123.exe 就OK了. hao123是用病毒的形式查找chrome.exe然后进程注入的 ...

  6. [UWP小白日记-7]转换MVA学院的XML字幕为SRT (二)

    瞎扯淡 上个版本,非常蠢用来N多的循环导致非常卡性能烂得不行,这次使用XmlDocument类来读取XML字幕 其实根本不用各种扒XML字幕,好吧我这是学习使用XmlDocument类,嗯就是这个样子 ...

  7. Nuget 学习三

    后期管理: 登录 nuget 官网 https://www.nuget.org/ 可以搜索到自己的包: 点击进入,可进一步操作 如果你需要给自己的类型新增其他功能,或者修改之前的bug(反正就是修改代 ...

  8. mysql分享记录

    今天公司进行了一次mysql的分享,做一下记录,也许很多东西很简单,但是对于不知道的人就很难 1.用最小代价存储 举个例子来说,如果能确定某个字段是存数字的,并且数字的大小一定不会超过127或255, ...

  9. linuxlab下虚拟板与主机通信

  10. 回文质数 Prime Palindromes

    题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...