自动安装Redis服务端与PHP扩展Redis
该脚本基于阿里云服务器安装脚本,并只能运用于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的更多相关文章
- 自动安装memcached服务端与PHP扩展Memcached
该脚本基于阿里云服务器安装脚本,并只能运用于centos / aliyun os,该脚本使用时,需要与阿里云安装脚本的install.sh放在同一目录下.有缘人切忌乱用: #! /bin/bash # ...
- 安装redis服务端
1. redis服务端和客户端的安装 [root@xxx ~]# cd /usr/local/src [root@xxx src]# wget http://download.redis.io/rel ...
- 编译安装rabbitmq服务端
有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装 总括: 需要以下步骤: 1.安装erlange.因为 ...
- Redis01 Redis服务端环境搭建
1 前提准备 下载 VM centos6 安装包,安装好虚拟系统 2 安装远程连接工具 工具获取 2.1 SecureCRT.Xshell 连接远程服务器 2.2 WinSCP 向远程服务器发送文件 ...
- Windows安装VNC服务端
下载VNC服务端 由于服务器在IDC机房,只能使用系统自带远程桌面连接到服务器进行安装VPC服务端 但在安装过程发现,如果是通过远程桌面连接到服务器进行安装,VNC Mirror Driver会报错无 ...
- 多个Linux发行版安装ss服务端
本文仅做技术探讨,请在遵守相应的法律法规的前提下使用. Centos 7一键安装脚本 简单快捷,随机生成密码,默认端口默认加密类型 bash <(curl -s http://morning.w ...
- 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 ...
- 怎样连接REDIS服务端
怎样连接REDIS服务端 REDIS服务器是TCP/IP SERVER,因此客户端要访问,必须先同服务器建立SOCKET连接,然后才可以发送各种REDIS COMMAND(指令). 首先要引用单元文件 ...
随机推荐
- 写一个Redis封装类
打算自己封装一个Redis操作类,方便使用,且有一定log记录.Redis的封装思路:基于Redis类进一步封装 一般属性 单例 (配置参数从配置文件中读取还是写死?考虑多配置之间切换) 常规操作根据 ...
- ClassLoader的类结构分析
摘自深入分析java web技术内幕
- 无U盘安装Linux openSUSE(通过硬盘安装Linux)
一.说明 为什么会想着用硬盘安装Linux?只是因为我陆陆续续买了两个U盘,然后它们都丢了,就没再买了.然而现在又想装个openSUSE,没有U盘,只能想办法通过硬盘安装. 记录自己走过的弯路,同时也 ...
- [ios-必看] WWDC 2013 Session笔记 - iOS7中的多任务【转】
感谢:http://onevcat.com/2013/08/ios7-background-multitask/ http://www.objc.io/issue-5/multitasking.htm ...
- 办理康卡迪亚大学(本科)学历认证『微信171922772』Concordia学位证成绩单使馆认证Concordia University
办理康卡迪亚大学(本科)学历认证『微信171922772』Concordia学位证成绩单使馆认证Concordia University Q.微信:171922772办理教育部国外学历学位认证海外大学 ...
- PRD学习笔记:一些需要注意的说明
控件说明 1)输入框 若输入框有默认提示,点击输入框,弹出软键盘. 当输入框内不为空(空格除外)时,默认显示消失. 2)软键盘的弹出及退去机制 当输入框内必须输入的为数字时,弹出数字软键盘.其余时候, ...
- case a.ass_term_unit when '01' then (case a.ass_profit_mode when '0' then round(sum(a.ass_amount*a.ass_annual_rate/365*365*a.ass_term/100) ,2) when '1' then round(sum(a.ass_amount*a.ass_annual_rate/
--01 年 02 月 03 日 select a.ass_due_date, case a.ass_term_unit when '01' then (case a.ass_profit_mode ...
- HDU 1045 Fire Net(DFS)
Fire Net Problem Description Suppose that we have a square city with straight streets. A map of a ci ...
- button 自动刷新当前页面
button请始终为按钮规定 type 属性.Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "sub ...
- zabbix 布署实践【4 服务器自动探索发现,并且自动关联模版】
使用管理员登录zabbix后,在配置---自动发现--创建发现规则 如下:我们的需求是监听办公网内openstack的所有虚拟机,在其VM创建后,自动加到zabbix监控中来,并自动关联监控模版 可以 ...