通過shell腳本安裝Java1.8、Tomcat8、MySQL5.6、Nginx1.15
定義的安裝變量
#! /bin/bash
# 主安裝頁面
# tomcat 安裝變量
TOMCAT_URL="https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz"
TOMCAT_NAME="apache-tomcat-8.0.53"
TOMCAT_NAME_TAR="apache-tomcat-8.0.53.tar.gz"
TOMCAT_INSTALL_DIR="/usr/local/tomcat8"
TOMCAT_SERVICE="/usr/lib/systemd/system/tomcat8.service"
TOMCAT_SERVCIE_FILE="tomcat8.service"
# nginx 安裝變量
NGINX_URL="http://nginx.org/download/nginx-1.15.5.tar.gz"
NGINX_NAME_TAR="nginx-1.15.5.tar.gz"
NGINX_NAME="nginx-1.15.5"
NGINX_INSTALL_DIR="/usr/local/nginx"
NGINX_SERVICE="/usr/lib/systemd/system/nginx.service"
NGINX_SERVICE_FILE="nginx.service"
# mysql 安裝變量
MYSQL_NAME="mysql-5.6.29"
MYSQL_NAME_TAR="mysql-5.6.29.tar.gz"
MYSQL_INSTALL_DIR="/usr/local/mysql"
MYSQL_INSTALL_DATE="/usr/local/mysql/data";
Java安裝函數(shù)
# java安裝
function java_install() {
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
if [ $? == 0 ]; then
echo -e "\033[44;37m >>> 設置環(huán)境變量... \033[0m";
echo "JAVA_HOME=/usr/lib/jvm/java" >> /etc/profile
echo "PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
echo "CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" >> /etc/profile
echo "export JAVA_HOME CLASSPATH PATH" >> /etc/profile
source /etc/profile
read -p ">>> 是否執(zhí)行驗證? y/n" SELECT;
if [ $SELECT -eq 'y' ]; then
java -version
javac -version
return 0;
else
echo -e "\033[44;37m 安裝結(jié)束... \033[0m";
return 0;
fi
else
echo -e "\033[41;37m >>> 執(zhí)行失敗... \033[0m";
exit;
fi
}
Tomcat安裝函數(shù)
# tomcat安裝
function tomcat_install() {
echo -e "\033[44;37m >>> 開始下載Tomcat8 \033[0m";
wget $TOMCAT_URL
if [ $? -eq 0 ]; then
echo -e "\033[44;37m >>>下載成功! \033[0m";
clear && tar -zxvf $TOMCAT_NAME_TAR && mv $TOMCAT_NAME $TOMCAT_INSTALL_DIR && cd $TOMCAT_INSTALL_DIR
if [ $? -eq 0 ]; then
clear
echo -e "\033[44;37m >>> 開始配置服務... \033[0m";
touch $TOMCAT_SERVICE
echo "[Unit]" >> $TOMCAT_SERVICE
echo "Description=Tomcat" >> $TOMCAT_SERVICE
echo "After=syslog.target network.target remote-fs.target nss-lookup.target" >> $TOMCAT_SERVICE
echo "[Service]" >> $TOMCAT_SERVICE
echo "Type=oneshot" >> $TOMCAT_SERVICE
echo "ExecStart=/usr/local/tomcat8/bin/startup.sh" >> $TOMCAT_SERVICE
echo "ExecStop=/usr/local/tomcat8/bin/shutdown.sh" >> $TOMCAT_SERVICE
echo "ExecReload=/bin/kill -s HUP $MAINPID" >> $TOMCAT_SERVICE
echo "RemainAfterExit=yes" >> $TOMCAT_SERVICE
echo "[Install]" >> $TOMCAT_SERVICE
echo "WantedBy=multi-user.target" >> $TOMCAT_SERVICE
echo "\033[44;37m >>> 設置開機自啟... \033[0m";
systemctl enable $TOMCAT_SERVCIE_FILE
if [ $? -eq 0 ]; then
clear && systemctl daemon-reload
echo -e "\033[44;37m >>> 安裝Tomcat8成功 \033[0m";
systemctl status firewalld | grep "dead"
if [ $? -eq 0 ]; then
systemctl start firewalld
fi
firewall-cmd --list-ports | grep "8080"
if [ $? -eq 1 ]; then
echo -e "\033[43;37m >>> 檢測到8080未打開,將開啟... \033[0m"
firewall-cmd --zone=public --add-port=8080/tcp --permanent && firewall-cmd --reload
if [ $? -eq 0 ]; then
echo -e "\033[46;37m >>> 啟動Tomcat... \033[0m"
systemctl start tomcat8
return 0;
fi
fi
else
echo -e "\033[41;37m >>> 設置開機自啟失??!\033[0m";
exit;
fi
else
echo -e "\033[41;37m >>> 解壓失敗!\033[0m";
exit;
fi
else
echo -e "\033[41;37m >>> 下載失敗,請確認是否聯(lián)網(wǎng)!\033[0m";
exit;
fi
}
Nginx安裝函數(shù)
# nginx 安裝
function nginx_install() {
echo -e "\033[42;37m >>> 安裝Nginx的相關(guān)依賴... \033[0m";
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc-c++ && clear
if [ $? -eq 0 ]; then
echo -e "\033[42;37m >>> 開始下載Nginx... \033[0m"
wget $NGINX_URL
if [ $? -eq 0 ]; then
echo -e "\033[42;37m >>> 開始解壓安裝... \033[0m"
tar -zxvf $NGINX_NAME_TAR && mkdir $NGINX_INSTALL_DIR && cd $NGINX_NAME && ./configure --prefix="$NGINX_INSTALL_DIR" && make && make install
if [ $? -eq 0 ]; then
echo -e "\033[42;37m >>> 安裝成功!\033[0m"
sleep 2;
echo -e "\033[42;37m >>> 開始設置開機重啟... \033[0m";
touch $NGINX_SERVICE
echo "[Unit]" >> $NGINX_SERVICE
echo "Description=nginx - high performance web server" >> $NGINX_SERVICE
echo "After=network.target remote-fs.target nss-lookup.target" >> $NGINX_SERVICE
echo "[Service]" >> $NGINX_SERVICE
echo "Type=forking" >> $NGINX_SERVICE
echo "ExecStart=/usr/local/nginx/sbin/nginx" >> $NGINX_SERVICE
echo "ExecReload=/usr/local/nginx/sbin/nginx -s reload" >> $NGINX_SERVICE
echo "ExecStop=/usr/local/nginx/sbin/nginx -s stop" >> $NGINX_SERVICE
echo "PrivateTmp=true" >> $NGINX_SERVICE
echo "[Install]" >> $NGINX_SERVICE
echo "WantedBy=multi-user.target" >> $NGINX_SERVICE
systemctl daemon-reload && systemctl enable $NGINX_SERVICE_FILE
clear
echo -e "\033[42;37m >>> 配置成功,啟動Nginx... \033[0m";
sleep 2;
systemctl start $NGINX_SERVICE_FILE
return 0;
else
echo -e "\033[41;37m >>> 安裝失?。033[0m";
exit;
fi
else
echo -e "\033[41;37m >>> 下載失敗,請確認是否聯(lián)網(wǎng)!\033[0m";
exit;
fi
else
echo -e "\033[41;37m >>> 依賴安裝失敗!\033[0m";
exit;
fi
}
Mysql 安裝函數(shù)
mysql_install() {
echo -e "\033[42;37m >>> 正在下載mysql...\033[0m";
yum install -y wget && wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz;
if [ $? -eq 0 ]; then
clear
echo -e "\033[42;37m >>> 依賴安裝! \033[0m";
yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel
echo -e "\033[42;37m >>> 解壓文件 \033[0m";
tar -zxvf $MYSQL_NAME_TAR && cd $MYSQL_NAME
if [ $? -eq 0 ];then
echo -e "\033[42;37m >>> 安裝前的設置 \033[0m";
cmake -DCMAKE_INSTALL_PREFIX=$MYSQL_INSTALL_DIR \
-DMYSQL_DATADIR=$MYSQL_INSTALL_DATE \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
if [ $? -eq 0 ];then
echo -e "\033[42;37m >>> 設置成功!開始編譯安裝,大約需要20分鐘,耐心等待...\033[0m";
sleep 2s
make && make install
if [ $? -eq 0 ]; then
cd ~
echo -e "\033[42;37m >>> 編譯成功!開始設置組和用戶! \033[0m";
sleep 2s
groupadd mysql &&
useradd mysql -g mysql -M -s /sbin/nologin &&
chown mysq:mysql $MYSQL_INSTALL_DIR
else
echo -e "\033[41;37m >>> 編譯失敗! \033[0m";
exit;
fi
else
echo -e "\033[41;37m >>> 設置失?。?\033[0m";
exit;
fi
else
echo -e "\033[41;37m >>> 解壓失??!\033[0m";
exit;
fi
else
echo -e "\033[41;37m >>> 請先確認聯(lián)網(wǎng)! \033[0m";
exit;
fi
echo -e "\033[42;37m >>> 開始配置mysql \033[0m";
cd $MYSQL_INSTALL_DIR
echo -e "\033[42;37m >>> 初始化mysql \033[0m";
./scripts/mysql_install_db --user=mysql --datadir=$MYSQL_INSTALL_DATE
cp support-files/my-default.cnf /etc/my.cnf
sleep 2s
echo -e "\033[42;37m >>> 開始修改mysql的配置文件 <======";
sed -i 's/\# basedir \= ...../basedir \= \/usr\/local\/mysql/g' /etc/my.cnf
sed -i 's/\[mysqld\]/&\ndefault-storage-engine=InnoDB/' /etc/my.cnf
sed -i 's/\[mysqld\]/&\nlower_case_table_names=1/' /etc/my.cnf
echo -e "\033[42;37m >>> 制作服務啟動 \033[0m";
/bin/cp -rf support-files/mysql.server /etc/init.d/mysqld
if [ $? -eq 0 ]; then
echo -e "\033[42;37m >>> 服務設置成功! \033[0m";
cd ~
service mysqld start
sleep 2s
service mysqld stop
sleep 2s
else
echo -e "\033[42;37m >>> 服務設置失??! \033[0m";
fi
echo -e "\033[42;37m >>> 添加到開機啟動項! \033[0m";
chkconfig --add mysqld
if [ $? -eq 0 ]; then
echo -e "\033[42;37m >>> 設置開機啟動項成功! \033[0m";
else
echo -e "\033[41;37m >>> 設置開機啟動項失??! \033[0m";
fi
service mysqld stop
echo -e "\033[42;37m >>> 配置環(huán)境變量 \033[0m";
echo "export PATH=$PATH:/usr/local/mysql/bin/" >>/etc/profile
source /etc/profile
echo -e "\033[42;37m >>> 啟動mysql服務 \033[0m";
service mysqld start
cd $MYSQL_INSTALL_DIR
echo -e "\033[42;37m >>> 設置root密碼為: “123456” \033[0m";
./bin/mysqladmin -u root password "123456"
if [ $? -eq 0 ];then
echo -e "\033[42;37m >>> 設置root密碼成功!\033[0m";
source /etc/profile
else
echo -e "\033[41;37m >>> 設置root密碼失敗!\033[0m";
fi
}
程序的主體
function main() {
echo -e "\033[43;37m==================================================\033[0m";
echo -e "\033[43;37m================JavaWeb環(huán)境安裝部署===============\033[0m";
echo -e "\033[43;37m===================1-Mysql5.6=====================\033[0m";
echo -e "\033[43;37m===================2-Java1.8======================\033[0m";
echo -e "\033[43;37m===================3-Tomcat8======================\033[0m";
echo -e "\033[43;37m===================4-Nginx1.15====================\033[0m";
echo -e "\033[43;37m===================5-全部安裝=====================\033[0m";
echo -e "\033[43;37m===================6-退出=========================\033[0m";
echo -e "\033[43;37m==================================================\033[0m";
read -p "輸入選擇 >>> " SELECT;
case $SELECT in
1)
echo -e "\033[43;37m選擇安裝Mysql5.6\033[0m";
mysql_install
echo -e "\033[46;37m在控制臺中執(zhí)行 “source /etc/profile” 命令!\033[0m";
;;
2)
echo -e "\033[43;37m選擇安裝Java1.8\033[0m";
java_install
;;
3)
echo -e "\033[43;37m選擇安裝Tomcat8\033[0m";
tomcat_install
;;
4)
echo -e "\033[43;37m選擇安裝Nginx1.15\033[0m";
nginx_install
;;
5)
echo -e "\033[43;37m將安裝全部的JavaWeb環(huán)境\033[0m";
java_install
tomcat_install
nginx_install
mysql_install
echo -e "\033[46;37m在控制臺中執(zhí)行 “source /etc/profile” 命令!\033[0m";
;;
6)
echo -e "\033[43;37程序退出...\033[0m";
exit;
;;
*)
echo -e "\033[41;37m錯誤!請選擇{mysql|java|tomcat|nginx|all}\033[0m";
echo "——————————————————————————————";
;;
esac
}
# 主函數(shù)的調(diào)用
main
Mysql編譯安裝比較慢,mysql設置了默認密碼為 “123456”,如需要可以自己修改mysql密碼
Tomcat8:
# tomcat安裝目錄
/usr/local/tomcat
# 啟動Tomcat
systemctl start tomcat8.service
# 關(guān)閉Tomcat
systemctl stop tomcat8.service
Nginx1.15
# Nginx 安裝目錄
/usr/local/nginx
# 啟動Nginx
systemctl start nginx.service
# 關(guān)閉Nginx
systemctl stop nginx.service
Mysql5.6
需要在安裝之后按照提示執(zhí)行
source /erc/profile
Java8
java -version
javac
Tomcat和Nginx已經(jīng)添加開機自啟,Mysql編譯需要10-20分鐘,虛擬機>20分鐘,主要看配置了。