@Great-Chinese
2016-09-13T03:47:34.000000Z
字数 5235
阅读 965
linux
#!/usr/bin/env bash## 检查上一步命令释放执行成功check_ok() {if [ $? != 0 ]thenecho "Error,check the error log"exit 1fi}## 获取用户输入read_input(){read -p "$1" valecho $val >> /dev/null}## 使用yum安装工具yum_install(){echo "checking....$1"if ! rpm -qa|grep -q "^$1" ; thenecho "installing... $1"yum install -y $1check_okfi}ar=`arch`select_soft(){#clearprint_infoecho "请选择安装的软件:"select item in MySql PHP Nginx EXITdocase $item inMySql)install_mysqlbreak ;;;PHP)install_phpbreak;;;Nginx)install_nginxbreak;;;Apache)break;;;EXIT)exit 0;;*)echo "选择错误,请重新选择";;esacdoneselect_soft}print_info(){echo "****************************************************** 1 安装Mysql ** 2 安装PHP ** 3 安装Nginx ** 4 退出 ******************************************************"}
#!/usr/bin/env bash## 安装mysql的函数install_mysql(){mysql_data_dir=/data/mysqlpasswd=123456## 新增mysql账号if ! grep '^mysql:' /etc/passwd ; thenuseradd -M mysql -s /sbin/nologinfiif [ -d $install_dir/mysql ] ; thenecho -e "\e[31m 已经安装Mysql,请移除 \e[m"else## 安装插件yum_install compat-libstdc++-33[ -d $mysql_data_dir ] || mkdir -p $mysql_data_dir## 把文件夹的目录授权给mysqlchown -R mysql:mysql $mysql_data_direcho "选择安装mysql的版本"select mysql_version in 5.1 5.6docase $mysql_version in5.1)[ -f $src_dir/mysql-5.1.72-linux-$ar-glibc23.tar.gz ] || wget -P $src_dir http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72-linux-$ar-glibc23.tar.gzcheck_oktar -xvf $src_dir/mysql-5.1.72-linux-$ar-glibc23.tar.gz -C $src_dircheck_okmv $src_dir/mysql-5.1.72-linux-$ar-glibc23 $install_dir/mysqlsed -i '/^\[mysqld\]$/a\datadir = /data/mysql' $install_dir/mysql/support-files/my-huge.cnfcp $install_dir/mysql/support-files/my-huge.cnf /etc/my.cnfbreak ;;;5.6)[ -f $src_dir/mysql-5.6.32-linux-glibc2.5-$ar.tar.gz ] || wget -P $src_dir http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.32-linux-glibc2.5-$ar.tar.gzcheck_oktar -xvf $src_dir/mysql-5.6.32-linux-glibc2.5-$ar.tar.gz -C $src_dircheck_okmv $src_dir/mysql-5.6.32-linux-glibc2.5-$ar $install_dir/mysqlcheck_oksed -i '/^\[mysqld\]$/a\datadir = /data/mysql' $install_dir/mysql/support-files/my-default.cnfcp $install_dir/mysql/support-files/my-default.cnf /etc/my.cnfbreak;;;*)echo "选择错误";;esacdone$install_dir/mysql/scripts/mysql_install_db --user=mysql --datadir=$mysql_data_dir --basedir=$install_dir/mysqlcheck_oksed -i 's#^basedir=$#basedir='$install_dir'/mysql#g' $install_dir/mysql/support-files/mysql.servercheck_oksed -i 's#^datadir=$#datadir=/data/mysql#g' $install_dir/mysql/support-files/mysql.servercp -f $install_dir/mysql/support-files/mysql.server /etc/init.d/mysqldchmod 755 /etc/init.d/mysqldchkconfig --add mysqldservice mysqld startcheck_ok$install_dir/mysql/bin/mysqladmin -u root password $passwd ;$install_dir/mysql/bin/mysql -u root -p$passwd -e "delete from mysql.user where host != 'localhost'; delete from mysql.user where user=''; update mysql.user set host = '%' ; flush privileges;"fi}
#!/bin/bashinstall_php(){for p in libxml2-devel openssl-devel bzip2-devel bzip2-devel freetype freetype-devel libmcrypt-devel libjpeg-turbo libjpeg-turbo-devel libpng-develdoyum_install $pdone[ -f $src_dir/php-5.6.25.tar.gz ] || wget -P $src_dir http://101.110.118.75/am1.php.net/distributions/php-5.6.25.tar.gztar -xvf $src_dir/php-5.6.25.tar.gz -C $src_dircurrent_pwd=`pwd`cd $src_dir/php-5.6.25$src_dir/php-5.6.25/configure --prefix=$install_dir/php --with-config-file-path=$install_dir/php/etc --with-mysql=$install_dir/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6check_okmake && make installcheck_okcd $current_pwdcp $src_dir/php-5.6.25/php.ini-production $install_dir/php/etc/php.ini}
#!/usr/bin/env bashinstall_nginx(){[ -f $src_dir/nginx-1.11.3.tar.gz ] || wget -P $src_dir http://nginx.org/download/nginx-1.11.3.tar.gzcPwd=`pwd`cd $src_dirtar -xvf $src_dir/nginx-1.11.3.tar.gz -C $src_dircheck_okcd nginx-1.11.3./configure --prefix=$install_dir/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcrecheck_okmake && make installcd $cPwdcp -f conf/nginx /etc/init.d/nginxsed -i 's#nginx_home_dir#'$install_dir'/nginx#g' /etc/init.d/nginxchmod +x /etc/init.d/nginxchkconfig --add nginx}
#!/usr/bin/env bash. /etc/init.d/functions. funs.sh. mysql.sh. php.sh. nginx.sh# 需要使用的参数install_dir=/usr/localsrc_dir=$install_dir/src## 关闭selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config## 获取当前setlinux状态,转换成为小写selinux_s=`getenforce | tr [A-Z] [a-z]`##如果状态为 enforcing ,设设置成 Permissiveif [ "$selinux_s" == "enforcing" ] ; thensetenforce 0 ;fi## 清空iptables防火墙规则iptables-save > /etc/sysconfig/iptables_`date +%s`iptables -Fservice iptables save## 删除 epel-releaseif rpm -qa | grep epel-release > /dev/null ; thenrpm -e epel-release > /dev/nullfi## 获取Centos的版本,如果是6.xx下载 epel-6.repo ,如果是7.xx 下载 epel-7.repoepel_file_v=`cat /etc/redhat-release | sed 's/[^0-9.]//g' | cut -d'.' -f1`epel_file_name=epel-"$epel_file_v".repo## 删除 epel-6.repo 相关文件if ls /etc/yum.repos.d/$epel_file_name >/dev/null 2>&1thenrm -f /etc/yum.repos.d/$epel_file_namefiif [ "7" == "$epel_file_v" ] ; thenyum_install perl-Module-Installfi## 检索是否安装了下列软件,没有就安yum_install wgetwget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/$epel_file_name#检查wget下载epel-6.rep文件是否下载成功check_okselect_soft