CentOS7 离线安装fastDFS、jdk1.8、mysql5.7、nginx、libreOffice

**因工作需要,在内网环境下安装运行环境,故写成脚本以供参考。

以下软件已在CentOS7下离线安装成功,成功后个别配置文件(fastDFS,nginx等)需手动配置,脚本中不再赘述。

先说下离线安装包在linux中的放置路径:/opt/install_package

install_package文件夹下面文件列表:

 fastDFS:

 

jdk1.8

LibreOffice

mysql 5.7

 nginx

**完整shell代码如下

#!/bin/bash
function install_JDK(){
    java -version >> /dev/null 2>&1
    if [ $? -eq 0 ];then
        echo "**************JDK is already installed***************"
        return
    fi
    if [ ! -f "/opt/install_package/jdk1.8/jdk1.8.tar.gz" ];then
        echo "*****************JDK installation package does not exist******************"
        return
    fi
    echo "begin to install jdk"
    cd jdk1.8
    tar zxvf jdk1.8.tar.gz -C /usr/local/
    chmod 777 /usr/local/jdk1.8/bin/java
    chmod 777 /usr/local/jdk1.8/bin/javac
    echo 'JAVA_HOME=/usr/local/jdk1.8' >> ~/.bash_profile
    echo 'JAVA_BIN=$JAVA_HOME/bin' >> ~/.bash_profile
    echo 'JRE_HOME=$JiAVA_HOME/jre' >> ~/.bash_profile
    echo 'JRE_BIN=$JRE_HOME/bin' >> ~/.bash_profile
    echo 'PATH=$JAVA_BIN:$JRE_BIN:$PATH' >> ~/.bash_profile
    echo 'export JAVA_HOME JRE_HOME PATH' >> ~/.bash_profile
    source ~/.bash_profile
    java -version
    if [ $? -eq 0 ];then
        echo "JDK installed successfully"
    else
        echo "jdk install failed!"
    fi
}
function install_mysql(){
    isExit=`ps -ef | grep mysql| grep -v grep`
    if [ -n "${isExit}" ];then
        echo "**********************MySQL is already installed*****************************"
        return
    fi
    if [ ! -f "mysql/mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar" ];then
        echo "*****************MySQL installation package does not exist******************"
        return
    fi
    echo "**************begin to install mysql*********************"
    cp -rf mysql /usr/local/
    cd /usr/local/mysql
    tar xvf mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar
    rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm --nodeps --force
    rpm -ivh mysql-community-devel-5.7.9-1.el7.x86_64.rpm --nodeps --force
    rpm -ivh mysql-community-libs-compat-5.7.9-1.el7.x86_64.rpm --nodeps --force
    rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm --nodeps --force
    rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm --nodeps --force
    service mysqld stop
    echo "skip-grant-tables" >> /etc/my.cnf
    service mysqld start    
    echo "****************mysql install sucessed**********************"
    echo "****account:root,password is empty,Please change the password in time****"
}
function install_nginx(){
    isExit=`ps -ef | grep nginx |grep -v grep`
    if [ -n "${isExit}" ];then
        echo "**********************Nginx is already installed*****************************"
        return
    fi
    if [ ! -d "nginx" ];then
        echo "Nginx installation package does not exist"
        return
    fi
    pacakgeNum=`ls nginx|wc -w`
    if [ ${pacakgeNum} -ne 4 ];then
        echo "*********************Wrong number of installation packages*******************"
        return
    fi
    echo "**********************begin to install nginx***********************"    
    cp -rf nginx /usr/local/
    cd /usr/local/nginx
    tar zxvf openssl-fips-2.0.10.tar.gz
    cd openssl-fips-2.0.10
    ./config && make && make install
    cd ..
    tar zxvf pcre-8.42.tar.gz
    cd pcre-8.42
    ./configure && make && make install
    cd ..
    tar zxvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure && make && make install
    cd ..
    tar zxvf nginx-1.14.2.tar.gz
    cd nginx-1.14.2
    ./configure && make && make install
    ln -s /usr/local/lib/libpcre.so.1 /lib64/
    path=`whereis nginx |awk -F: '{print $2}'`
    systemctl stop firewalld.service
    ${path}/sbin/nginx
    if [ $? -eq 0 ];then
        echo "****************Nginx installed successfully***********************"
    else
        echo "****************Nginx installation failed**************************"
    fi
}
function isntall_LibreOffice(){    
    isExit=`ps -ef | grep libreoffice5.3 | grep -v grep`
    if [ -n "${isExit}" ];then
        echo "*******************Libreoffice is already installed**********************"
        return
    fi
    if [ ! -f "libreOffice/LibreOffice_5.3.7_Linux_x86-64_rpm.tar.gz" ];then
        echo "*****************LibreOffice installation package does not exist******************"
        return
    fi
    tar zxvf libreOffice/LibreOffice_5.3.7_Linux_x86-64_rpm.tar.gz -C /usr/local/
    cd /usr/local/LibreOffice_5.3.7.2_Linux_x86-64_rpm/RPMS
    rpm -ivh *.rpm
    cd /opt/libreoffice5.3/program
    ./soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &
    isExit=`ps -ef | grep libreoffice5.3 | grep -v grep`
    if [ -n "${isExit}" ];then
        echo "*******************Libreoffice installed successfully**********************"
    else
        echo "*******************Libreoffice installation failed*************************"
    fi
    
}
function install_fastDFS(){
    while read -p "请输入fastDFS服务器ip地址:" cur_ip
    do
        ipcalc -cs ${cur_ip}
        if [ "$?" -eq 0 ];then
            break
        else 
            echo "ip地址填写错误,请重新填写!"
            continue
        fi
    done
    cp -rf fastDFS /usr/local/
    cd /usr/local/fastDFS
    tar zxvf libevent-2.0.22-stable.tar.gz
    cd libevent-2.0.22-stable
    ./configure --prefix=/data/libevent
    cd /usr/local/fastDFS
    tar -zxvf libfastcommon.tar.gz
    cd libfastcommon
    ./make.sh
    ./make.sh install
    ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
    cd /usr/local/fastDFS/
    tar -zxvf FastDFS_v5.05.tar.gz
    cd FastDFS
    old='TARGET_PREFIX=$DESTDIR/usr'
    new='TARGET_PREFIX=$DESTDIR/usr/local'
    sed -i "s#$old#$new#g" make.sh
    ./make.sh && ./make.sh install
    ####配置tracker.conf
    mkdir -p /data/fdfs/tracker
    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    old=`cat /etc/fdfs/tracker.conf | grep  "^base_path="`
    new="base_path=/data/fdfs/tracker"
    sed -i "s#$old#$new#g" /etc/fdfs/tracker.conf
    if [ ! -f "/etc/init.d/fdfs_trackerd" ];then
        cp -rf /usr/local/fastDFS/FastDFS/init.d/fdfs_trackerd /etc/init.d/
    fi
    ##设置trackerd开机自启
    chkconfig --add fdfs_trackerd
    chkconfig fdfs_trackerd on
    service fdfs_trackerd start
    ##配置storage.conf
    mkdir -p /data/fdfs/storage
    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    old=`cat /etc/fdfs/storage.conf | grep  "^base_path="`
    new="base_path=/data/fdfs/storage"
    sed -i "s#$old#$new#g" /etc/fdfs/storage.conf
    
    old=`cat /etc/fdfs/storage.conf | grep "^store_path0="`
    new="store_path0=/data/fdfs/storage"
    sed -i "s#$old#$new#g" /etc/fdfs/storage.conf
    
    
    old=`cat /etc/fdfs/storage.conf | grep "^tracker_server="`
    new="tracker_server=${cur_ip}:22122"    
    sed -i "s#$old#$new#g" /etc/fdfs/storage.conf
    
    if [ ! -f "/etc/init.d/fdfs_storaged" ];then
                cp -rf /usr/local/fastDFS/FastDFS/init.d/fdfs_storaged /etc/init.d/
        fi
    ##设置tracker开机自启
    chkconfig --add fdfs_storaged
    chkconfig fdfs_storaged on
    service fdfs_storaged start

    ##配置client.conf
    cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
    old=`cat /etc/fdfs/client.conf | grep "^base_path="`
    new="base_path=/data/fdfs/tracker"
    sed -i "s#$old#$new#g" /etc/fdfs/client.conf
        
    old=`cat /etc/fdfs/client.conf | grep "^tracker_server="`
    new="tracker_server=${cur_ip}:22122"
    sed -i "s#$old#$new#g" /etc/fdfs/client.conf

    ##获取tracker配置端口,需与client.conf保持一致    
    tracker_port=`cat /etc/fdfs/tracker.conf | grep "^http.server_port="|awk -F= '{print $2}'`
    old=`cat /etc/fdfs/client.conf | grep "http.tracker_server_port="`
    new="http.tracker_server_port=${tracker_port}"
    sed -i "s#$old#$new#g" /etc/fdfs/client.conf
    echo "*******************fastDFS installed successfully**********************"
    echo "path of storage.conf is /etc/fdfs/storage.conf"
    echo "path of tracker.conf is /etc/fdfs/tracker.conf"
    echo "path of client.conf is /etc/fdfs/tracker.conf"
    echo "path of data is /data/fdfs/storage/data"
    
    
}

 
Tips="
此脚本用来一键安装各种应用程序软件,包括jdk、应用程序、nginx等\n
1、离线安装jdk并配置环境变量\n
2、离线安装nginx\n
3、离线安装mysql\n
4、离线安装word转pdf打印服务(Libreoffice)\n
5、离线安装fastDFS\n
0、 退出
"
echo -e ${Tips}
while read -p "请输入您的操作序号:" val
do
    if [ "$val" == "0" ];then
        break
    elif [ "$val" == "1" ];then
        install_JDK
        echo -e ${Tips}
        continue
    elif [ "$val" == "2" ];then
        install_nginx
        echo -e ${Tips}
        continue
    elif [ "$val" == "3" ];then
                install_mysql
        echo -e ${Tips}
                continue
    elif [ "$val" == "4" ];then
                isntall_LibreOffice
        echo -e ${Tips}
                continue
    elif [ "$val" == "5" ];then
                install_fastDFS
        echo -e ${Tips}
                continue
    else 
        echo "Wrong number input, please input again ."
    fi
done

 离线安装包(1G)下载链接: https://pan.baidu.com/s/14_NbibeuGwf35K4CmZ7HzQ 提取码: 829i

posted @ 2020-03-22 11:12  蓝色土耳其  阅读(874)  评论(0编辑  收藏  举报