设为首页 收藏本站
查看: 577|回复: 0

[经验分享] LAMP、LNMP、Tomcat自动安装脚本

[复制链接]

尚未签到

发表于 2018-12-3 07:26:29 | 显示全部楼层 |阅读模式
  脚本说明:

  •   实现自动化搭建LAMP服务,或者是LNMP服务,还有Tomcat
  •   注意安装Tomcat需要下载jdk-8u161-linux-x64.tar.gz到/usr/local/src
  •   不能同时安装LAMP 和 LNMP
  •   安装完成后需要执行source /etc/profile

  安装菜单:

  脚本源码:
#!/bin/bash
# create by kindy
# date: 2018.03.26
# centos7 + apache2.4 + mysql5.6 + php5.6 + nginx1.8 + jdk1.8 + tomcat8
dependence(){
    echo -e "\e[1;32m ----- install wget pcre gcc libxml2 expat perl autocon ----- \e[0m"
    yum install -y wget pcre-devel gcc libxml2-devel expat-devel perl-Module-Install autoconf
    echo -e "\e[1;32m ----- install openssl bzip2 libjpeg libpng freetype epel mcrypt curl ----- \e[0m"
    yum install -y openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel epel-release libmcrypt-devel curl-devel
}
download(){
    cd /usr/local/src
    echo -e "\e[1;32m ----- downloading apache-2.4.29 ----- \e[0m"
    wget http://mirrors.sohu.com/apache/httpd-2.4.29.tar.gz
    wget http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.3.tar.gz
    wget http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
    echo -e "\e[1;32m ----- downloading mysql-5.6.36 ----- \e[0m"
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
    echo -e "\e[1;32m ----- downloading php-5.6.9 ----- \e[0m"
    wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz
    echo -e "\e[1;32m ----- downloading nginx-1.8.0 ----- \e[0m"
    wget http://mirrors.sohu.com/nginx/nginx-1.8.0.tar.gz
    echo -e "\e[1;32m ----- download xcache-3.2 ----- \e[0m"
    wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
    echo -e "\e[1;32m ----- download tomcat-8.5 ----- \e[0m"
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.29/bin/apache-tomcat-8.5.29.tar.gz
    echo -e "\e[1;32m ********** download finished ********* \e[0m"
    ls /usr/local/src/
}
install_apache(){
    cd /usr/local/src/
    [ -d apr-1.6.3 ] || tar -zxf apr-1.6.3.tar.gz
    [ -d apr-util-1.6.1 ] || tar -zxf apr-util-1.6.1.tar.gz
    [ -d httpd-2.4.29 ] || tar -zxf httpd-2.4.29.tar.gz
    cd /usr/local/src/apr-1.6.3/
    ./configure --prefix=/usr/local/apr && make && make install
    if [ $? -ne 0 ];then
        echo -e "\e[1;31m ----- apr install failed! ----- \e[0m"
    else
        echo -e "\e[1;32m ----- apr is installed. ----- \e[0m"
    fi
    cd /usr/local/src/apr-util-1.6.1/
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
    if [ $? -ne 0 ];then
        echo -e "\e[1;31m ----- apr-util install failed! ----- \e[0m"
    else
        echo -e "\e[1;32m ----- apr-util is installed. ----- \e[0m"
    fi
    cd /usr/local/src/httpd-2.4.29/
    ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most && make && make install
    if [ $? -ne 0 ];then
        echo -e "\e[1;31m ----- apache2.4 install failed! ----- \e[0m"
    else
        echo -e "\e[1;32m ----- apache2.4 is installed. ----- \e[0m"
    fi
}
config_apache(){
    echo "PATH=$PATH:/usr/local/apache2.4/bin/" >> /etc/profile
    /usr/local/apache2.4/bin/apachectl start
    port=`netstat -lnp|grep httpd|wc -l`
    if [ $port -gt 0 ];then
        echo -e "\e[1;32m ----- httpd service on ----- \e[0m"
    else
        echo -e "\e[1;31m ----- httpd start failed. ----- \e[0m"
    fi
    echo -e "\e[1;32m ----- httpd config php ----- \e[0m "
    sed -i '203s/denied/granted/' /usr/local/apache2.4/conf/httpd.conf
    sed -i '/AddType application\/x-gzip .gz .tgz/a\    AddType application\/x-httpd-php .php' /usr/local/apache2.4/conf/httpd.conf
    sed -i 's/.*index.html/& index.php/' /usr/local/apache2.4/conf/httpd.conf
    sed -i 's/^#ServerName/ServerName/' /usr/local/apache2.4/conf/httpd.conf
    /usr/local/apache2.4/bin/apachectl restart
    echo -e "\e[1;32m -------- httpd config php finished.  ------ \e[0m"
}
install_nginx(){
    cd /usr/local/src/
    [ -d nginx-1.8.0 ] || tar -zxf nginx-1.8.0.tar.gz
    cd /usr/local/src/nginx-1.8.0/
    ./configure --prefix=/usr/local/nginx && make && make install
    if [ $? -ne 0 ];then
        echo -e "\e[1;31m ----- nginx is installed. ----- \e[0m"
    else
        echo -e "\e[1;32m ----- nginx is installed. ----- \e[0m"
    fi
    echo "PATH=$PATH:/usr/local/nginx/sbin/" >> /etc/profile
}
install_mysql(){
    cd /usr/local/src/
    tar -zxf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
    [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_bak
    mv /usr/local/src/mysql-5.6.36-linux-glibc2.5-x86_64/ /usr/local/mysql/
    useradd -s /sbin/nologin mysql
    mkdir -p /data/mysql
    chown -R mysql:mysql /data/mysql
    /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql  --datadir=/data/mysql
    if [ $? -ne 0 ];then
        echo -e "\e[1;31m ----- mysql install failed ----- \e[0m"
    else
        echo -e "\e[1;32m ----- mysql is installed. ----- \e[0m"
    fi
}
config_mysql(){
    cd /usr/local/mysql/
    mv /etc/my.cnf  /etc/my.cnf_bak
    cp support-files/my-default.cnf /etc/my.cnf
    sed -ir 's@# basedir = .....@basedir = /usr/local/mysql@' /etc/my.cnf
    sed -ir 's@# datadir = .....@datadir = /data/mysql@' /etc/my.cnf
    cp support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
    sed -i 's@^datadir=@datadir=/data/mysql@' /etc/init.d/mysqld
    chkconfig --add mysqld && chkconfig mysqld on
    service mysqld start
    port=`netstat -lnp|grep 3306|wc -l`
    if [ $port -eq 1 ];then
        echo -e "\e[1;32m --- mysql service on --- \e[0m"
    fi
}
install_php(){
    cd /usr/local/src/
    [ -d php-5.6.9 ] || tar -zxf php-5.6.9.tar.gz
    cd /usr/local/src/php-5.6.9/
    ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --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 && make && make install
    if [ $? -ne 0 ];then
        echo -e "\e[1;31m ----- php install failed ----- \e[0m"
    else
        echo -e "\e[1;32m ----- php is installed. ----- \e[0m"
    fi
}
config_php(){
    cp /usr/local/src/php-5.6.9/php.ini-production /usr/local/php/etc/php.ini
}
install_php_fpm(){
    cd /usr/local/src/
    [ -d php-5.6.9 ] || tar -zxf php-5.6.9.tar.gz
    cd /usr/local/src/php-5.6.9/
    ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl  --with-openssl && make && make install
    if [ $? -ne 0 ];then
        echo -e "\e[1;31m ----- php-fpm install failed ----- \e[0m"
    else
        echo -e "\e[1;32m ----- php-fpm is installed. ----- \e[0m"
    fi
}
config_php_fpm(){
    useradd -s /sbin/nologin php-fpm
    cp /usr/local/src/php-5.6.9/php.ini-production /usr/local/php-fpm/etc/php.ini
    touch /usr/local/php-fpm/etc/php-fpm.conf
    (
    cat >/usr/local/php-fpm/etc/php-fpm.conf > /etc/profile
    echo "JAVA_BIN=/usr/local/jdk1.8/bin" >> /etc/profile
    echo "JRE_HOME=/usr/local/jdk1.8/jre" >> /etc/profile
    echo "CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar" >> /etc/profile
    echo "PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin" >> /etc/profile
    echo -e "\e[1;32m ----- jdk is installed. ----- \e[0m"
}
install_tomcat(){
    cd /usr/local/src
    [ -d apache-tomcat-8.5.29 ] || tar -zxf apache-tomcat-8.5.29.tar.gz
    [ -d /usr/local/tomcat ] && mv /usr/local/tomcat /usr/local/tomcat_bak
    mv apache-tomcat-8.5.29/ /usr/local/tomcat/
    /usr/local/tomcat/bin/startup.sh
    port=`netstat -lnp|grep java|wc -l`
    if [ $port -gt 0 ];then
        echo -e "\e[1;32m ----- tomcat is installed. ----- \e[0m"
    else
        echo -e "\e[1;31m ----- tomcat install failed. ----- \e[0m"
    fi
}
install_lamp(){
    install_apache
    install_mysql
    install_php
    install_xcache_php
}
config_lamp(){
    config_apache
    config_mysql
    config_php
}
install_lnmp(){
    install_nginx
    install_mysql
    install_php_fpm
    install_xcache_fpm
}
config_lnmp(){
    config_mysql
    config_php_fpm
}
menu(){
    echo -e "\e[1;32m ----- please input your choice: ----- \e[0m"
    cat

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642554-1-1.html 上篇帖子: tomcat部署应用三种方式 下篇帖子: JAVA与Tomcat(续二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表