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

 #!/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. nginx css,js合并插件,淘宝nginx合并js,css插件

    先下载Nginx_concat_module,下载后把它放在/usr/local/src/文件夹中,新建文件夹nginx-http-concat把下载的config  ngx_http_concat_ ...

  2. JAVA POI XSSFWorkbook导出扩展名为xlsx的Excel,附带weblogic 项目导出Excel文件错误的解决方案

    现在很多系统都有导出excel的功能,总结一下自己之前写的,希望能帮到其他人,这里我用的是XSSFWorkbook,我们项目在winsang 用的Tomcat,LInux上用的weblogic服务器, ...

  3. css3 鼠标悬浮动画效果

    CSS3案例 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...

  4. 【题解】P1440 均分纸牌

    均分纸牌 题目描述: 有\(N\)堆纸牌,编号分别为\(1,2,-,N\).每堆上有若干张,但纸牌总数必为\(N\)的倍数.可以在任一堆上取若干张纸牌,然后移动. 移牌规则为:在编号为\(1\)堆上取 ...

  5. 有道云笔记新功能发现——有道云笔记剪报,完美解决不开会员保存csdn博客到本地的问题。

    怎么用 方法一:谷歌插件 方法二:http://note.youdao.com/web-clipper-chrome.html 添加到书签 功能: 能够把网页浏览的内容保存到有道云笔记 解决了自己的难 ...

  6. spring boot问题记录(持续更新)

    1.springboot v2.1.1.RELEASE版本中server.context-path=/demo不起作用?   路径变了:server.servlet.context-path=/dem ...

  7. 面试系列22 dubbo的工作原理

    (1)dubbo工作原理 第一层:service层,接口层,给服务提供者和消费者来实现的 第二层:config层,配置层,主要是对dubbo进行各种配置的 第三层:proxy层,服务代理层,透明生成客 ...

  8. Activiti业务键(businessKey)

    问题:如何让业务对象和对应的流程 关联? 发现ProcessInstance 有个方法getBusinessKey()可以得到一个businessKey. ProcessInstance 对应数据库中 ...

  9. spark2.0在IDE运行的问题

    spark2.0搭建到服务器跑很方便,但是本地跑和之前1.6还是有点区别,鼓捣了一点到半夜2点多总算能跑了.. 遇到的问题 1.idea千万要用file---setting-----plugins的s ...

  10. Java参数校验工具validation实践

    介绍 在项目开发当中,数据校验是你必须要考虑和面对的事情,为此要写上一大串的代码进行校验,这样就会导致代码冗余和一些管理的问题. 例如下面的代码: public void push(List<L ...