• 基于阿里云安装脚本扩展 之 自动安装mongodb及php扩展


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

      1 #!/bin/bash
      2 #by dxd in 2017-2
      3 #only suit for centos/aliyun os, and based on aliyun install script
      4 
      5 CURR_PATH=$(pwd)
      6 
      7 PHP_EXT_SOURCE_PATH=""
      8 PHP_BIN_PATH=/alidata/server/php/bin
      9 
     10 DOWNLOAD_MONGODB_URL_X64=http://download.verymall.cn/mongodb-2.7.0.tgz
     11 DOWNLOAD_MONGODB_URL_X86=http://download.verymall.cn/mongodb-linux-2.6.7-x86.tgz
     12 DOWNLOAD_MONGODB_CONF_URL=http://download.verymall.cn/mongodb.conf
     13 INSTALL_MONGODB_PATH=/alidata/server/mongodb
     14 MONGODB_PORT=27017
     15 
     16 DOWNLOAD_MONGODB_EXT_URL=http://download.verymall.cn/php-mongo-1.6.14.tgz
     17 PHP_INI_PATH=/alidata/server/php/etc/php.ini
     18 
     19 function check_user()
     20 {
     21     if [ "$(whoami)" != "root" ] 
     22     then
     23         echo "please run as root"
     24         exit 1
     25     fi
     26 }
     27 
     28 function check_os()
     29 {
     30     which yum > /dev/null 2>&1
     31     if [ "$?" != "0" ]
     32     then
     33         echo "linux is not based on centos"
     34         exit 1
     35     fi
     36 
     37     #if [ "$(getconf LONG_BIT)" != "64" ]
     38     #then
     39     #    echo "linux is not x64"
     40     #    exit 1
     41     #fi
     42 }
     43 
     44 function check_curr_path_auth()
     45 {
     46     if [ ! -w $CURR_PATH ]
     47     then
     48         echo "current path has no write auth"
     49         exit 1
     50     fi
     51 }
     52 
     53 function is_curr_path_legal()
     54 {
     55     if [ "$(ls | grep install.sh)" == "" ]
     56     then
     57         echo "path is illegal"
     58         exit 1
     59     fi
     60 }
     61 
     62 function get_php_ext_path()
     63 {
     64     for dir in $(ls)
     65     do
     66         TMP_PATH=$CURR_PATH/$dir/ext
     67         if [ -d $TMP_PATH ]
     68         then
     69             PHP_EXT_SOURCE_PATH=$TMP_PATH
     70             break
     71         fi
     72     done
     73 
     74     if [ -z "$PHP_EXT_SOURCE_PATH" ]
     75     then
     76         echo "php source path not found"
     77         exit 1
     78     fi
     79 
     80     echo -n "php ext source path is $PHP_EXT_SOURCE_PATH , (Y/N): "
     81     read USER_ANSWER
     82     until [ "$USER_ANSWER" = "Y" ] || [ "$USER_ANSWER" = "y" ]
     83     do
     84         if [ "$USER_ANSWER" = "N" ] || [ "$USER_ANSWER" = "n" ]
     85         then
     86             echo "php ext source path is fault, then exit"
     87             exit 1
     88         fi
     89     
     90         echo -n "php ext source path is $PHP_EXT_SOURCE_PATH , (Y/N): "
     91         read USER_ANSWER
     92     done
     93 }
     94 
     95 function check_gcc()
     96 {
     97     which gcc > /dev/null 2>&1
     98     if [ "$?" != "0" ]
     99     then
    100         echo "please install gcc first"
    101         exit 1
    102     fi
    103 }
    104 
    105 function check_mongodb_port()
    106 {
    107     if [ -n "$(lsof -i:$MONGODB_PORT)" ]
    108     then
    109         echo "PORT $MONGODB_PORT is occupied"
    110         exit 1
    111     fi
    112 }
    113 
    114 function check_alidata_path()
    115 {
    116     if [ ! -d /alidata ]
    117     then
    118         mkdir /alidata
    119     fi
    120 
    121     if [ ! -d /alidata/lib ]
    122     then
    123         mkdir /alidata/lib
    124     fi
    125 
    126     if [ ! -d /alidata/server ]
    127     then
    128         echo "alidata server has not been installed"
    129         exit 1
    130     fi
    131 }
    132 
    133 function install_dos2unix()
    134 {
    135     which dos2unix > /dev/null 2>&1
    136     if [ "$?" != "0" ]
    137     then
    138         yum install dos2unix
    139     fi
    140 }
    141 
    142 function install_mongodb_x64()
    143 {
    144     if [ -d $INSTALL_MONGODB_PATH ]
    145     then
    146         rm -rf $INSTALL_MONGODB_PATH
    147     fi
    148 
    149     if [ -a ./mongodb-2.7.0.tgz ] && [ -n "$(md5sum ./mongodb-2.7.0.tgz | grep 66acfaacb40be88db07065163cc15857)" ]
    150     then
    151         echo "./mongodb-2.7.0.tgz exist"
    152     else
    153         rm -f ./mongodb-2.7.0.tgz
    154         wget $DOWNLOAD_MONGODB_URL_X64
    155     fi
    156     
    157     rm -rf ./mongodb-linux-x86_64-2.7.0
    158     tar -zxvf ./mongodb-2.7.0.tgz > /dev/null
    159     if [ ! -d ./mongodb-linux-x86_64-2.7.0 ]
    160     then
    161         echo "tar fail"
    162         exit 1
    163     fi
    164 
    165     mv ./mongodb-linux-x86_64-2.7.0 $INSTALL_MONGODB_PATH
    166     mkdir $INSTALL_MONGODB_PATH/data
    167     mkdir $INSTALL_MONGODB_PATH/log
    168     mkdir $INSTALL_MONGODB_PATH/pid
    169     mkdir $INSTALL_MONGODB_PATH/conf
    170 
    171     wget -O $INSTALL_MONGODB_PATH/conf/mongodb.conf $DOWNLOAD_MONGODB_CONF_URL
    172 
    173     #run mongodb
    174     echo "it will takes a few minutes to fork children process in the first, please be patient!"
    175     $INSTALL_MONGODB_PATH/bin/mongod -f $INSTALL_MONGODB_PATH/conf/mongodb.conf
    176 }
    177 
    178 function install_mongodb_x86()
    179 {
    180     if [ -d $INSTALL_MONGODB_PATH ]
    181     then
    182         rm -rf $INSTALL_MONGODB_PATH
    183     fi
    184 
    185     if [ -a ./mongodb-linux-2.6.7-x86.tgz ] && [ -n "$(md5sum ./mongodb-linux-2.6.7-x86.tgz | grep 87a57c05e428fe1ced619e63107140ff)" ]
    186     then
    187         echo "./mongodb-linux-2.6.7-x86.tgz exist"
    188     else
    189         rm -f ./mongodb-linux-2.6.7-x86.tgz
    190         wget $DOWNLOAD_MONGODB_URL_X86
    191     fi
    192 
    193     rm -rf ./mongodb-linux-i686-2.6.7
    194     tar -zxvf ./mongodb-linux-2.6.7-x86.tgz > /dev/null
    195     if [ ! -d ./mongodb-linux-i686-2.6.7 ]
    196     then
    197         echo "tar fail"
    198         exit 1
    199     fi
    200 
    201     mv ./mongodb-linux-i686-2.6.7 $INSTALL_MONGODB_PATH
    202     mkdir $INSTALL_MONGODB_PATH/data
    203     mkdir $INSTALL_MONGODB_PATH/log
    204     mkdir $INSTALL_MONGODB_PATH/pid
    205     mkdir $INSTALL_MONGODB_PATH/conf
    206 
    207     wget -O $INSTALL_MONGODB_PATH/conf/mongodb.conf $DOWNLOAD_MONGODB_CONF_URL
    208 
    209     #run mongodb
    210     echo "it will takes a few minutes to fork children process in the first, please be patient!"
    211     $INSTALL_MONGODB_PATH/bin/mongod -f $INSTALL_MONGODB_PATH/conf/mongodb.conf
    212 }
    213 
    214 function install_mongodb()
    215 {
    216     if [ "$(getconf LONG_BIT)" == "64" ]
    217     then 
    218         install_mongodb_x64
    219     elif [ "$(getconf LONG_BIT)" == "32" ]
    220     then
    221         install_mongodb_x86
    222     else
    223         echo "linux bit error"
    224         exit 1
    225     fi
    226 }
    227 
    228 function install_mongodb_php_ext()
    229 {
    230     if [ -d ./mongo-1.6.14 ]
    231     then
    232         rm -rf ./mongo-1.6.14
    233     fi
    234 
    235     if [ -d $PHP_EXT_SOURCE_PATH/mongo ]
    236     then
    237         rm -rf $PHP_EXT_SOURCE_PATH/mongo
    238     fi
    239 
    240     if [ -a ./php-mongo-1.6.14.tgz ] && [ -n "$(md5sum ./php-mongo-1.6.14.tgz | grep '19cd8bd94494f924ce8314f304fd83b6')" ]
    241     then
    242         echo "php mongo exist"
    243     else
    244         wget $DOWNLOAD_MONGODB_EXT_URL
    245     fi
    246 
    247     tar -zxvf ./php-mongo-1.6.14.tgz
    248     chmod -R 0777 ./mongo-1.6.14
    249     mv ./mongo-1.6.14 $PHP_EXT_SOURCE_PATH/mongo
    250     
    251     cd $PHP_EXT_SOURCE_PATH/mongo
    252     $PHP_BIN_PATH/phpize
    253     ./configure --with-php-config=$PHP_BIN_PATH/php-config 
    254     make 
    255     make install 
    256 
    257     write php.ini
    258     mongo_exist=$(cat $PHP_INI_PATH | grep 'mongo.so')
    259     if [ -z "$mongo_exist" ]
    260     then
    261         echo "extension=mongo.so" >> $PHP_INI_PATH
    262     fi
    263 
    264     cd $CURR_PATH
    265 }
    266 
    267 function restart_php_fpm()
    268 {
    269     /etc/init.d/php-fpm restart
    270 }
    271 
    272 check_user
    273 check_os
    274 check_curr_path_auth
    275 is_curr_path_legal
    276 get_php_ext_path
    277 check_gcc
    278 check_mongodb_port
    279 check_alidata_path
    280 install_dos2unix
    281 install_mongodb
    282 install_mongodb_php_ext
    283 restart_php_fpm
    284 
    285 echo "mongodb install successfully"
    286 exit 0
  • 相关阅读:
    socket
    IPv4 IPv6
    2变量与基本类型之const限定符
    15面向对象程序设计
    深度探索C++对象模型之第三章:数据语义学
    线段树(成段更新) 之 poj 3468 A Simple Problem with Integers
    USACO 之 Section 1.1 Ad Hoc Problems (已解决)
    构造字符串 之 hdu 4850 Wow! Such String!
    模拟 + 最短路 之 hdu 4849 Wow! Such City!
    简单题(需要注意一个细节) 之 hdu 4847 Wow! Such Doge!
  • 原文地址:https://www.cnblogs.com/ddcoder/p/6384774.html
Copyright © 2020-2023  润新知