基于阿里云安装脚本扩展 之 自动安装mongodb及php扩展
好久没有发布文章了,有点跟不上当初这个博客的初衷。为了使自己的博客更新不半途而废,今天特意再写了一个自动安装脚本,一样是基于阿里云的服务端安装脚本进行的扩展。闲话不说,直接放代码:
#!/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扩展的更多相关文章
- 基于阿里云ecs(centos 7) 安装jenkins
1. 安装好 jdk 2. 官网(https://pkg.jenkins.io/redhat-stable/)下载rpm包(稳定版): wget https://pkg.jenkins.io/redh ...
- (二)基于阿里云的MQTT远程控制(购买阿里云,在云端安装MQTT,测试MQTT远程通信)
QQ名称为Friday~的网友把他自己买MQTT的过程截图发给了我,今天就说一下如何购买阿里云,安装MQTT可以参考 http://www.cnblogs.com/yangfengwu/p/77646 ...
- 基于阿里云SLB/ESS/EIP/ECS/VPC的同城高可用方案演练
今天基于阿里云SLB/ESS/EIP/ECS/VPC等产品进行了一次同城高可用方案演练: 基本步骤如下: 1. 在华东1创建VPC网络VPC1,在华东1可用区B和G各创建一个虚拟交换机vpc1_swi ...
- 基于阿里云server搭建SVNserver
基于阿里云server搭建SVNserver 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/details/8577 ...
- 基于阿里云的JavaEE系统框架介绍
基于阿里云的系统框架展望 1) CDN 用于缓存静态文件等等.七牛和阿里的都还可以. 七牛要做的久一点,各种图片处理的接口要完善一些 阿里的CDN要稍微好一点点,但是没有不安全的访问方式,访问稍微没有 ...
- [转]阿里云CentOS 7.1使用yum安装MySql5.6.24
阿里云CentOS 7.1使用yum安装MySql5.6.24 作者:vfhky | 时间:2015-06-25 09:43 | 分类:web 在前面两篇文章<2015博客升级记(四):Cent ...
- go程序基于阿里云CodePipeline的一次devops实践
背景 最近朋友有个项目代码托管用的码云,测试服务器(阿里云ECS)只有一台,三四个人开发,于是想基于阿里云的CodePipeline快速打造一套自动化cicd的流程,使用docker来进行多套环境部署 ...
- 基于阿里云容器服务用docker容器运行ASP.NET 5示例程序
小试阿里云容器服务 之后,接下来有一个挡不住的小试冲动--用docker容器运行程序.首先想到的程序是 ASP.NET 5示例程序,于是参考msdn博客中的这篇博文 Running ASP.NET 5 ...
- 一·创建Linux服务器(基于阿里云)
本系统是基于阿里云服务器,购买请前往https://www.aliyun.com/?spm=5176.8142029.388261.1.taXish ,由于经济能力的限制,本人购买的是最低配置如下 其 ...
随机推荐
- (转)I帧,P帧,B帧 .
转:http://blog.csdn.net/abcjennifer/article/details/6577934 视频压缩中,每帧代表一幅静止的图像.而在实际压缩时,会采取各种算法减少数据的容量, ...
- VS中检测数据库链接
在程序中链接数据库,总要为链接语句发愁.可以尝试在链接前,从VS中测试下链接,测试成功的话,可以直接将链接语句复制到程序中. 在VS中,选择“工具”——“连接到数据库”,如下:
- selenium python bindings 初步用法及简单参考例子
掌握selenium最简单的方法就是参考例子进行学习,下面给出之前项目的测试例子及分析 # -*- coding: utf-8 -*- import time from selenium import ...
- openstack实战部署
简介:Openstack系统是由几个关键服务组成,他们可以单独安装,这些服务根据你的云需求工作在一起,这些服务包括计算服务.认证服务.网络服务.镜像服务.块存储服务.对象存储服务.计量服务.编排服务和 ...
- Java基础拾遗(二) — 关于equals(),hashcode()和 ==
这里分别讲==和equals()的关系,以及equals()和hashcode()的关系 讲解之前,需要先明白对象的内容.对象的引用,基本类型,引用类型这几个概念,此处不做解释 一.==和equals ...
- 1.2_springboot2.x中redis缓存&原理介绍
1.整合redis作为缓存 说明这里springboot版本2.19 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构 ...
- wpf 纯样式写按钮
<!--自定义按钮样式--> <LinearGradientBrush x:Key="LinearGradientBlueBackground" EndPoint ...
- UBOOT把文件写入 NandFlash
如果把一个传到内存中的文件写入到 Nand Flash 中, 如:新的 uboot.bin, zImage(内核), rootfs 等, 如果做呢?我们可以用 Nand Flash 命令来完成. 但是 ...
- RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more infor
在virtualenv环境下使用matplotlib绘图时遇到了这样的问题: >>> import matplotlib.pyplot as pltTraceback (most r ...
- Python3.6爬虫+Djiago2.0+Mysql --运行djiago环境
1.安装djiago 模块 pip install Django --默认安装最新的 安装完成以后可以python -m pip list 查看模块是否安装 2.创建项目及app 及生成目录 备注 ...