基于阿里云安装脚本扩展 之 自动安装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 ,由于经济能力的限制,本人购买的是最低配置如下 其 ...
随机推荐
- django2 rest api
版本django 2.2.3,我用的社区版 1.安装django:pycharm——Settings——Project Interpreter——选择你要的Python解释器版本——点击右侧的加号,输 ...
- Docker系列(三):Docker自定义容器镜像
将容器编程镜像: docker commit [repo:tag] 网上有这句话:当我们在制作自己的镜像的时候,会在container中安装一些工具.修改配置,如果不做commit保存 起来,那么co ...
- CCPC 2019 网络赛 HDU huntian oy (杜教筛)
1005 huntian oy (HDU 6706) 题意: 令,有T次询问,求 f(n, a, b). 其中 T = 10^4,1 <= n,a,b <= 1e9,保证每次 a,b互质. ...
- let能否完全替代IIFE
let是什么 http://es6.ruanyifeng.com/#docs/let 最近,我写了一篇关于syntax of Java’s IIFE pattern的文章,来解释为什么我们用现在的方式 ...
- <每日一题>题目2:编写装饰器,为多个函数加上认证功能(用户账号和密码来源于文件)
这里做个最简单的账号密码验证,主要为了实现装饰器同时对多个函数起作用 FLAG = False #加一个变量防止多次登录验证 def wrapper(f): def inner(*args,**kwa ...
- java关于lombok(包括父类参数)
java关于lombok对bean对象进行自动设置 使用说明 使用方式 注释类型 @NonNull @Data(常用) @NoArgsConstructor(常用)/@RequiredArgsCons ...
- AWS云管理平台
- thinkphp 数据创建
在进行数据操作之前,我们往往需要手动创建需要的数据,例如对于提交的表单数据: // 获取表单的POST数据 $data['name'] = $_POST['name']; $data['email'] ...
- vue爬坑之input组件
本篇写给第一次用VUE写输入框组件的朋友们 正常情况我们vue2.0是怎么样取到input框的值的呢? 很简单只需要给input框设置v-model="val" 我们就能从data ...
- R语言:表格的线图转化
R语言:表格的线图转化 最先选取的是北京各区普通住宅成交十年(2016年及2006年)涨幅对比.这张图比较plain,主要拿来练习: 1.数据表格的基本整理及计算 2. 数据的初步分析 3.线图的基本 ...