之前做了分布式网络云盘项目,这个项目的环境搭建还是比较麻烦的,总有小伙伴问我有没有打包好的安装包,其实我之前整理了在Github上,但是下载速度确实让人望而却步。而且自己把之前搭建好的阿里云服务器重置了,所以自己也需要重新搭建一遍,索性写个脚本,一劳永逸。正好也复习一下脚本编写。
一、主要功能项
- OsCheck()
- Install_nginx()
- Install_libfastcommon()
- Install_fastdfs()
- Install_fastdfs_nginx_module()
- Modify_config()
没什么好说的,就是先将需要安装的各种软件和依赖库都装上。主要功能其实还是几个修改配置文件的地方,其涉及到对文件的修改,趁机学习一下sed、awk等文件操作命令,我觉得他们确切来说应该叫工具,其功能很强大。
#绿色字体
Green1="\033[32m"
Green2="\033[0m"
GET_NGINX=http://nginx.org/download/nginx-1.17.8.tar.gz
GET_LIBCOMMOM=https://github.com/happyfish100/libfastcommon/archive/master.zip
GET_FASTDFS=https://github.com/happyfish100/fastdfs/archive/master.zip
GET_FNM=https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip
NGINX_POS=/usr/local/nginx/
#判断操作系统类别
OsCheck() {
if [ -e /etc/redhat-release ]; then
REDHAT=`cat /etc/redhat-release | awk '{print $1}'`
else
DEBIAN=`cat /etc/issue | awk '{print $1}'`
fi
if [ "$REDHAT" == "CentOS" -o "$REDHAT" == "Red" ]; then
P_M=yum
elif [ "$DEBIAN" == "Ubuntu" -o "$DEBIAN" == "ubuntu" ]; then
P_M=apt-get
else
Operating system dose not support.
exit 1
fi
if [ "$P_M" == "yum" ]; then
echo -e "${Green1}Your system is $REDHAT. $Green2"
else
echo -e "${Green1}Your system is $DEBIAN. $Green2"
fi
}
#安装nginx
Install_nginx() {
NGINX_PAC=nginx-1.17.8.tar.gz
echo "Download nginx..."
if [ ! -e ./$NGINX_PAC ]; then
wget $GET_NGINX
else
echo -e "${Green1}Nginx has been download. $Green2"
fi
echo "Install pcre zlib openssl..."
sudo $P_M install libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev
echo "Install nginx..."
if [ ! -e ./$NGINX_PAC ]; then
echo "Can't find nginx package..."
elif [ ! -d ./nginx-1.17.8/ ]; then
tar -xvzf $NGINX_PAC
else
cd nginx-1.17.8
./configure
make
make install
cd -
fi
echo "Link nginx..."
sudo ln -s ${NGINX_POS}sbin/nginx /usr/local/bin
echo -e "${Green1}Install nginx Success! $Green2"
}
Install_libfastcommon() {
echo "----------------------------------------------"
echo "Download FastDFS..."
echo "Install libfastcommon..."
if [ ! -d ./libfastcommon-master/ -a ! -e master.zip ]; then
wget $GET_LIBCOMMOM
unzip master.zip
mv master.zip libfastcommon-master.zip
else
echo -e "${Green1}Libfastcommon has been download. $Green2"
fi
if [ -e ./libfastcommon-master/ ]; then
cd libfastcommon-master/
./make.sh clean
./make.sh
./make.sh install
cd -
else
echo "Don't have libfastcommon files!"
fi
echo -e "${Green1}Libfastcommon install success. $Green2"
}
Install_fastdfs() {
echo "Install fastDFS..."
if [ ! -e ./master.zip -a ! -d ./fastdfs-master/ ]; then
wget $GET_FASTDFS
unzip master.zip
mv master.zip fastdfs-master.zip
else
echo -e "${Green1}Fastdfs has been download.$Green2"
fi
if [ -d ./fastdfs-master/ ]; then
cd fastdfs-master
./make.sh clean
./make.sh
sudo ./make.sh install
cd -
else
echo "Don't have fastDFS files!"
fi
if [ -d /etc/fdfs/ ]; then
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
cp storage.conf.sample storage.con
cp client.conf.sample client.conf
fi
echo -e "${Green1}FastDFS install success! $Green2"
}
Install_fastdfs_nginx_module() {
FNM_DIR=fastdfs-nginx-module-master
FNM_PAC=fastdfs_nginx_module.zip
echo "Install fastdfs_nginx_module..."
if [ ! -e ./master.zip -a ! -d ./${FNM_DIR}/ ]; then
wget $GET_FNM
unzip master.zip
mv master.zip $FNM_PAC
else
echo -e "${Green1}Fastdfs_nginx_module has been download."
fi
echo -e "${Green1}Fastdfs_nginx_module download success."
}
Modify_config() {
FNM_DIR=fastdfs-nginx-module-master
if [ -e $FNM_DIR/src/config ]; then
sed -i '/\<ngx_module_libs/a\ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"' $FNM_DIR/src/config
sed -i '/\<NGX_ADDON_SRCS/a\CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"' $FNM_DIR/src/config
else
echo "Fastdfs_nginx_module hasn't download."
fi
}