好久没有发布文章了,有点跟不上当初这个博客的初衷。为了使自己的博客更新不半途而废,今天特意再写了一个自动安装脚本,一样是基于阿里云的服务端安装脚本进行的扩展。闲话不说,直接放代码:

 #!/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_MONGODB_URL_X64=http://download.verymall.cn/mongodb-2.7.0.tgz
DOWNLOAD_MONGODB_URL_X86=http://download.verymall.cn/mongodb-linux-2.6.7-x86.tgz
DOWNLOAD_MONGODB_CONF_URL=http://download.verymall.cn/mongodb.conf
INSTALL_MONGODB_PATH=/alidata/server/mongodb
MONGODB_PORT= DOWNLOAD_MONGODB_EXT_URL=http://download.verymall.cn/php-mongo-1.6.14.tgz
PHP_INI_PATH=/alidata/server/php/etc/php.ini function check_user()
{
if [ "$(whoami)" != "root" ]
then
echo "please run as root"
exit
fi
} function check_os()
{
which yum > /dev/null >&
if [ "$?" != "" ]
then
echo "linux is not based on centos"
exit
fi #if [ "$(getconf LONG_BIT)" != "64" ]
#then
# echo "linux is not x64"
# exit
#fi
} function check_curr_path_auth()
{
if [ ! -w $CURR_PATH ]
then
echo "current path has no write auth"
exit
fi
} function is_curr_path_legal()
{
if [ "$(ls | grep install.sh)" == "" ]
then
echo "path is illegal"
exit
fi
} function get_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 "php source path not found"
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_mongodb_port()
{
if [ -n "$(lsof -i:$MONGODB_PORT)" ]
then
echo "PORT $MONGODB_PORT is occupied"
exit
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_dos2unix()
{
which dos2unix > /dev/null >&
if [ "$?" != "" ]
then
yum install dos2unix
fi
} function install_mongodb_x64()
{
if [ -d $INSTALL_MONGODB_PATH ]
then
rm -rf $INSTALL_MONGODB_PATH
fi if [ -a ./mongodb-2.7..tgz ] && [ -n "$(md5sum ./mongodb-2.7.0.tgz | grep 66acfaacb40be88db07065163cc15857)" ]
then
echo "./mongodb-2.7.0.tgz exist"
else
rm -f ./mongodb-2.7..tgz
wget $DOWNLOAD_MONGODB_URL_X64
fi rm -rf ./mongodb-linux-x86_64-2.7.
tar -zxvf ./mongodb-2.7..tgz > /dev/null
if [ ! -d ./mongodb-linux-x86_64-2.7. ]
then
echo "tar fail"
exit
fi mv ./mongodb-linux-x86_64-2.7. $INSTALL_MONGODB_PATH
mkdir $INSTALL_MONGODB_PATH/data
mkdir $INSTALL_MONGODB_PATH/log
mkdir $INSTALL_MONGODB_PATH/pid
mkdir $INSTALL_MONGODB_PATH/conf wget -O $INSTALL_MONGODB_PATH/conf/mongodb.conf $DOWNLOAD_MONGODB_CONF_URL #run mongodb
echo "it will takes a few minutes to fork children process in the first, please be patient!"
$INSTALL_MONGODB_PATH/bin/mongod -f $INSTALL_MONGODB_PATH/conf/mongodb.conf
} function install_mongodb_x86()
{
if [ -d $INSTALL_MONGODB_PATH ]
then
rm -rf $INSTALL_MONGODB_PATH
fi if [ -a ./mongodb-linux-2.6.-x86.tgz ] && [ -n "$(md5sum ./mongodb-linux-2.6.7-x86.tgz | grep 87a57c05e428fe1ced619e63107140ff)" ]
then
echo "./mongodb-linux-2.6.7-x86.tgz exist"
else
rm -f ./mongodb-linux-2.6.-x86.tgz
wget $DOWNLOAD_MONGODB_URL_X86
fi rm -rf ./mongodb-linux-i686-2.6.
tar -zxvf ./mongodb-linux-2.6.-x86.tgz > /dev/null
if [ ! -d ./mongodb-linux-i686-2.6. ]
then
echo "tar fail"
exit
fi mv ./mongodb-linux-i686-2.6. $INSTALL_MONGODB_PATH
mkdir $INSTALL_MONGODB_PATH/data
mkdir $INSTALL_MONGODB_PATH/log
mkdir $INSTALL_MONGODB_PATH/pid
mkdir $INSTALL_MONGODB_PATH/conf wget -O $INSTALL_MONGODB_PATH/conf/mongodb.conf $DOWNLOAD_MONGODB_CONF_URL #run mongodb
echo "it will takes a few minutes to fork children process in the first, please be patient!"
$INSTALL_MONGODB_PATH/bin/mongod -f $INSTALL_MONGODB_PATH/conf/mongodb.conf
} function install_mongodb()
{
if [ "$(getconf LONG_BIT)" == "" ]
then
install_mongodb_x64
elif [ "$(getconf LONG_BIT)" == "" ]
then
install_mongodb_x86
else
echo "linux bit error"
exit
fi
} function install_mongodb_php_ext()
{
if [ -d ./mongo-1.6. ]
then
rm -rf ./mongo-1.6.
fi if [ -d $PHP_EXT_SOURCE_PATH/mongo ]
then
rm -rf $PHP_EXT_SOURCE_PATH/mongo
fi if [ -a ./php-mongo-1.6..tgz ] && [ -n "$(md5sum ./php-mongo-1.6.14.tgz | grep '19cd8bd94494f924ce8314f304fd83b6')" ]
then
echo "php mongo exist"
else
wget $DOWNLOAD_MONGODB_EXT_URL
fi tar -zxvf ./php-mongo-1.6..tgz
chmod -R ./mongo-1.6.
mv ./mongo-1.6. $PHP_EXT_SOURCE_PATH/mongo cd $PHP_EXT_SOURCE_PATH/mongo
$PHP_BIN_PATH/phpize
./configure --with-php-config=$PHP_BIN_PATH/php-config
make
make install write php.ini
mongo_exist=$(cat $PHP_INI_PATH | grep 'mongo.so')
if [ -z "$mongo_exist" ]
then
echo "extension=mongo.so" >> $PHP_INI_PATH
fi cd $CURR_PATH
} function restart_php_fpm()
{
/etc/init.d/php-fpm restart
} check_user
check_os
check_curr_path_auth
is_curr_path_legal
get_php_ext_path
check_gcc
check_mongodb_port
check_alidata_path
install_dos2unix
install_mongodb
install_mongodb_php_ext
restart_php_fpm echo "mongodb install successfully"
exit

基于阿里云安装脚本扩展 之 自动安装mongodb及php扩展的更多相关文章

  1. 基于阿里云ecs(centos 7) 安装jenkins

    1. 安装好 jdk 2. 官网(https://pkg.jenkins.io/redhat-stable/)下载rpm包(稳定版): wget https://pkg.jenkins.io/redh ...

  2. (二)基于阿里云的MQTT远程控制(购买阿里云,在云端安装MQTT,测试MQTT远程通信)

    QQ名称为Friday~的网友把他自己买MQTT的过程截图发给了我,今天就说一下如何购买阿里云,安装MQTT可以参考 http://www.cnblogs.com/yangfengwu/p/77646 ...

  3. 基于阿里云SLB/ESS/EIP/ECS/VPC的同城高可用方案演练

    今天基于阿里云SLB/ESS/EIP/ECS/VPC等产品进行了一次同城高可用方案演练: 基本步骤如下: 1. 在华东1创建VPC网络VPC1,在华东1可用区B和G各创建一个虚拟交换机vpc1_swi ...

  4. 基于阿里云server搭建SVNserver

    基于阿里云server搭建SVNserver 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/details/8577 ...

  5. 基于阿里云的JavaEE系统框架介绍

    基于阿里云的系统框架展望 1) CDN 用于缓存静态文件等等.七牛和阿里的都还可以. 七牛要做的久一点,各种图片处理的接口要完善一些 阿里的CDN要稍微好一点点,但是没有不安全的访问方式,访问稍微没有 ...

  6. [转]阿里云CentOS 7.1使用yum安装MySql5.6.24

    阿里云CentOS 7.1使用yum安装MySql5.6.24 作者:vfhky | 时间:2015-06-25 09:43 | 分类:web 在前面两篇文章<2015博客升级记(四):Cent ...

  7. go程序基于阿里云CodePipeline的一次devops实践

    背景 最近朋友有个项目代码托管用的码云,测试服务器(阿里云ECS)只有一台,三四个人开发,于是想基于阿里云的CodePipeline快速打造一套自动化cicd的流程,使用docker来进行多套环境部署 ...

  8. 基于阿里云容器服务用docker容器运行ASP.NET 5示例程序

    小试阿里云容器服务 之后,接下来有一个挡不住的小试冲动--用docker容器运行程序.首先想到的程序是 ASP.NET 5示例程序,于是参考msdn博客中的这篇博文 Running ASP.NET 5 ...

  9. 一·创建Linux服务器(基于阿里云)

    本系统是基于阿里云服务器,购买请前往https://www.aliyun.com/?spm=5176.8142029.388261.1.taXish ,由于经济能力的限制,本人购买的是最低配置如下 其 ...

随机推荐

  1. MDK(KEIL)使用Astyle格式化代码

    关于Astyle Astyle 的全称是Artistic Style的简称,是一个开源的源代码格式化工具,可以对C,C++,C#以及Java等编程语言的源代码进行缩进.格式化.美化. Home Pag ...

  2. char类型在传参时接收不到数据的原因

    mybatis的原因!!!!! 数据库这个样子 在postman中调用接口:SQL select * from T_TRAIN_MARSHALLING where TRAIN_NUM is null ...

  3. 基于IDEA的SSM配置文件整合基础(有步骤)

    今天进行了SSM框架的整合,遇到了很多的错误,但所幸都有解决,以下为基础的整合步骤,后续待完善 1.SSM整合所需要: spring的jar(包含tx).springmvc的jar.mybatis.j ...

  4. Sequence POJ - 3581 后缀数组

    题意: 将一个序列分成非空的三部分,将每部分翻转后组合成一个新的序列, 输出这样操作得到的序列中字典序最小的序列 (保证第一个数是数组中最大的元素) 题解: 把数组当作串串. 因为第一个数最大,所以我 ...

  5. COGITATE | 分析当前热门软件的创新

    热门软件分析实例一——Github [简介] gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub.作为一个分布式的版本控制系统,在Gi ...

  6. cmd以管理员打开

  7. SecureCRT 64位 破解版和安装,以及解决乱码问题

    链接:https://pan.baidu.com/s/1q1DEmohK7ISNJ7UbJkN3jw 提取码:yea3 复制这段内容后打开百度网盘手机App,操作更方便哦 securecrt 破解版是 ...

  8. JavaScript特效源码(6、页面特效一)

    1.页面全屏 页面全屏显示[ALT+F4关闭][共1步][新弹出窗口并以全屏幕方式显示] ====1.将以下代码加入HTML的<body></body>之间: <form ...

  9. error in ./src/pages/login.vue?vue&type=style&index=0&lang=less&

    vue-cli3创建less工程,npm run serve 无法运行 bug解决方法: rm -rf node-modules 修改package.json为 "less": & ...

  10. html--设置复选按钮和单选按钮