咱今天使用shell脚本来安装lamp的框架 要想快捷的安装框架我们要使用阿里的在线yum源
shell脚本源代码
prerequisite(){
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== Start init config ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
FIREWALLD_STATUS=`systemctl status firewalld | grep loaded | wc -l`
SELINUX_STATUS=$(getenforce)
if [ ${FIREWALLD_STATUS} -ne 1 ]
then
systemctl stop firewalld && systemctl disable firewalld
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Firewalld successfully ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Firewalld close failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 1
fi
fi
if [ ${SELINUX_STATUS} -ne Disabled ]
then
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Selinux successfully ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Selinux close failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 2
fi
fi
if [ -f /etc/yum.repos.d/CentOS-Base.repo ] && [ -f /etc/yum.repos.d/epel.repo ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Centos_7 yum config successfully ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Config centos_7 yum string..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &&\
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Yum config successfully ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Yum config failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 3
fi
yum clean all ; yum makecache
fi
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== Init config successfully ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
}
install_apache(){
APACHE_VERSION=2.4.6
APACHE_INSTALLED=$(rpm -aq | grep httpd-${APACHE_VERSION} | wc -l)
if [ ${APACHE_INSTALLED} -ne 1 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== Start install apache server ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
yum install -y httpd-${APACHE_VERSION}
if [ $? -eq 0 ]
then
sleep 3
echo "`date '+%Y-%m-%d %H:%M:%S'` Apache server install successfully ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
systemctl enable httpd ; systemctl start httpd
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Start apache server successfully ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Start apache server failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 4
fi
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Install apache server failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 5
fi
sleep 3
APACHE_STATUS=$(systemctl status httpd | grep running | wc -l)
APACHE_PORT=$(netstat -ntplu | grep 80 | wc -l)
if [ ${APACHE_PORT} -eq 1 ] && [ ${APACHE_STATUS} -eq 1 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Apache port exists or status ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Apache port no eists or status no ok..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 6
fi
if [ ! -f /var/www/html/index.html ]
then
echo hello,world > /var/www/html/index.html
sleep 2
fi
curl -I 127.0.0.1 | grep "200 OK"
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Apache server 访问 successfully" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Apache server 访问 failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 7
fi
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== apache server successfully ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== apache server installed ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
fi
}
install_mariadb(){
MARIADB_VERSION=5.5.68
MARIADB_PASSWORD=000000
MARIADB_INSTALLED=$(rpm -qa | grep mariadb-${MARIADB_VERSION} | wc -l)
MARIADB_SERVER_INSTALLED=$(rpm -qa | grep mariadb-server-${MARIADB_VERSION} | wc -l)
MARIADB_DEVEL_INSTALLED=$(rpm -qa | grep mariadb-devel-${MARIADB_VERSION} | wc -l)
if [ ${MARIADB_INSTALLED} -ne 1 ] && [ ${MARIADB_SERVER_INSTALLED} -ne 1 ] && [ ${MARIADB_DEVEL_INSTALLED} -ne 1 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== Start install mariadb server =============="
yum install mariadb-${MARIADB_VERSION} mariadb-server-${MARIADB_VERSION} mariadb-libs-${MARIADB_VERSION} mariadb-devel-${MARIADB_VERSION} expect -y
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Install mariadb server successfully" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
sleep 3
systemctl enable mariadb ; systemctl start mariadb
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Start mariadb server successfully" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Start mariadb server failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 8
fi
MARIADB_PORT=$(netstat -ntplu | grep 3306 | wc -l)
MARIADB_STATUS=$(systemctl status mariadb | grep running | wc -l)
if [ ${MARIADB_PORT} -eq 1 ] && [ ${MARIADB_STATUS} -eq 1 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Mariadb server port exists or status ok" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Mpache server port no exists or status no ok... " 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 9
fi
expect -c "
spawn mysql_secure_installation
expect \"Enter current password for root (enter for none):\"
send \"\r\"
expect \"Set root password?\"
send \"y\r\"
expect \"New password:\"
send \"${MARIADB_PASSWORD}\r\"
expect \"Re-enter new password:\"
send \"${MARIADB_PASSWORD}\r\"
expect \"Remove anonymous users?\"
send \"y\r\"
expect \"Disallow root login remotely?\"
send \"n\r\"
expect \"Remove test database and access to it?\"
send \"y\r\"
expect \"Reload privilege tables now?\"
send \"y\r\"
"
sleep 2
mysql -uroot -p${MARIADB_PASSWORD} -e "show databases;"
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== Mariadb server init successfully ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== Mariadb server init failed... ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 10
fi
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== over install mariadb server ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Install mariadb failed" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 10
fi
else
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== mariadb server installed ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
fi
}
install_php(){
PHP_VERSION=5.4.16
PHP_INSTALLED=$(rpm -qa |grep "php-5.4.16" | wc -l)
if [ ${PHP_INSTALLED} -ne 1 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== Start install php ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
yum install php-${PHP_VERSION} php-devel-${PHP_VERSION} php-mysql-${PHP_VERSION} php-gd-${PHP_VERSION} php-imap-${PHP_VERSION} php-ldap-${PHP_VERSION} php-odbc-${PHP_VERSION} php-pear php-xml-${PHP_VERSION} php-xmlrpc-${PHP_VERSION} -y
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Install php server successfully" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
sleep 3
systemctl restart httpd
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Restart apache server successfully" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Restart apache server failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 11
fi
if [ ! -f /var/www/html/info.php ]
then
cat > /var/www/html/info.php << EOF
<?php
phpinfo();
?>
EOF
sleep 2
fi
curl -I 127.0.0.1/info.php | grep "200 OK"
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Php server 访问 successfully" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Php server 访问 failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 12
fi
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== over install php ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Install php server failed" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 13
fi
else
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== php server installed ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
fi
}
remove_lamp(){
APACHE_VERSION=2.4.6
APACHE_INSTALLED=$(rpm -aq | grep httpd-${APACHE_VERSION} | wc -l)
if [ ${APACHE_INSTALLED} -eq 1 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Start remove apache server" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
REMOVE_HTTPD=`rpm -qa |grep http`
yum remove -y $REMOVE_HTTPD && rm -rf /var/www && rm -rf /var/log/httpd
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Apache server remove successfully ok!" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Apache server remove failed" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 1
fi
else
echo "`date '+%Y-%m-%d %H:%M:%S'` no install apache" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
fi
MARIADB_VERSION=5.5.68
MARIADB_INSTALLED=$(rpm -qa | grep mariadb-${MARIADB_VERSION} | wc -l)
MARIADB_SERVER_INSTALLED=$(rpm -qa | grep mariadb-server-${MARIADB_VERSION} | wc -l)
MARIADB_DEVEL_INSTALLED=$(rpm -qa | grep mariadb-devel-${MARIADB_VERSION} | wc -l)
if [ ${MARIADB_INSTALLED} -eq 1 ] && [ ${MARIADB_SERVER_INSTALLED} -eq 1 ] && [ ${MARIADB_DEVEL_INSTALLED} -eq 1 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Start remove mariadb server" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
yum remove mariadb-${MARIADB_VERSION} mariadb-server-${MARIADB_VERSION} mariadb-libs-${MARIADB_VERSION} mariadb-devel-${MARIADB_VERSION} expect -y && rm -rf /etc/my.cnf* && rm -rf /var/lib/mysql
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` Remove mariadb server successfully" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` Remove mariadb server failed" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 1
fi
else
echo "`date '+%Y-%m-%d %H:%M:%S'` no install mariadb" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
fi
PHP_VERSION=5.4.16
php -v
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== Start remove php ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
yum remove php-${PHP_VERSION} php-devel-${PHP_VERSION} php-mysql-${PHP_VERSION} php-gd-${PHP_VERSION} php-imap-${PHP_VERSION} php-ldap-${PHP_VERSION} php-odbc-${PHP_VERSION} php-pear php-xml-${PHP_VERSION} php-xmlrpc-${PHP_VERSION} php-common-${PHP_VERSION} -y
if [ $? -eq 0 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` remove php server successfully" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` remove php server failed..." 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 11
fi
else
echo "`date '+%Y-%m-%d %H:%M:%S'` no install php" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
fi
}
lamp_log(){
if [ ! -e /var/log/lamp ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` create dir_lamp and file_lamp " 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
mkdir /var/log/lamp && touch /var/log/lamp/lamp_success.log && touch /var/log/lamp/lamp_error.log
fi
if [ $? -ne 0 ]
then
echo "log file create failed"
exit 2
fi
}
main(){
echo "=======请选择======="
echo "1.install LAMP 【1】"
echo "2.remove LAMP 【2】"
echo "3.exit 【3】"
read -p "输入对应数字即可:" LAMP
expr ${LAMP} + 1
if [ $? -eq 0 ]
then
echo "你输入的数字是:${LAMP}"
else
echo "你输入的数字是:${LAMP},输入不合法,请输入[1|2|3]"
exit 2
fi
if [ ${LAMP} -eq 1 ]
then
lamp_log
sleep 2
prerequisite
sleep 3
install_apache
sleep 3
install_mariadb
sleep 3
install_php
sleep 1
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== LAMP install successfully! ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
elif [ ${LAMP} -eq 2 ]
then
lamp_log
remove_lamp
echo "`date '+%Y-%m-%d %H:%M:%S'` ============== LAMP remove successfully! ==============" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
elif [ ${LAMP} -eq 3 ]
then
echo "`date '+%Y-%m-%d %H:%M:%S'` exit install lamp" 1>>/var/log/lamp/lamp_success.log 2>>/var/log/lamp/lamp_error.log
exit 1
else
echo "输入不合法,请输入[1|2|3]"
fi
}
main