#!/bin/bash
#2019.7. :
#This author is DKS
#auto install nginx mysql php
###################################
NGINX_VER="1.12.0"
NGINX_SOFT="nginx-$NGINX_VER"
NGINX_SRC="${NGINX_SOFT}.tar.gz"
NGINX_DIR="/usr/local/nginx"
NGINX_URL="http://nginx.org/download/$NGINX_SRC" auto_install_nginx(){
if [ -d /usr/local/nginx ];then
break
fi
cd $HOME
yum -y install wget epel-release gcc-c++ zlib zlib-devel openssl-devel openssl pcre-devel curl-devel
wget -c $NGINX_URL
tar -xzvf $NGINX_SRC
cd $NGINX_SOFT
./configure --prefix=$NGINX_DIR
make
make install
systemctl stop firewalld.service
setenforce
/usr/local/nginx/sbin/nginx
}
#####################################################
MYSQL_SOFT="mysql-5.5.61"
MYSQL_SRC="${MYSQL_SOFT}.tar.gz"
MYSQL_DIR="/usr/local/mysql5"
MYSQL_URL="http://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-5.5.61.tar.gz"
MYSQL_DATA="/data/mysql" auto_install_mysql(){
if [ -d /usr/local/mysql5 ];then
break
fi
cd $HOME
yum -y install cmake gcc-c++ ncurses-devel bison-devel cmake nucrses
wget -c $MYSQL_URL
tar -xzvf $MYSQL_SRC
cd $MYSQL_SOFT
mkdir -p $MYSQL_DATA
touch /tmp/mysql.sock
cmake . -DCMAKE_INSTALL_PREFIX=$MYSQL_DIR \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=$MYSQL_DATA \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT= \
-DWITH_XTRADB_STORAGE_ENGINE= \
-DWITH_INNOBASE_STOAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_READLINE= \
-DENABLE_LOCAL_INFILE= \
-DWITH_EXTRA_CHARSES= \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES= \
-DWITH_DEGUG= useradd mysql
make && make install
cd $MYSQL_DIR
chown -R mysql:mysql .
\cp support-files/my-large.cnf
\cp support-files/mysql.server /etc/init.d/mysqld
chmod /etc/init.d/mysqld
chkconfig --add mysql
chkconfig --level mysqld on cd $MYSQL_DIR
./scripts/mysql_install_db --user=mysql --datadir=${MYSQL_DATA} --basedir=${MYSQL_DIR}
ln -s $MYSQL_DIR/bin/* /usr/bin/
service mysqld start
}
####################################################
PHP_VAR="5.6.28"
PHP_SOFT="php-${PHP_VAR}"
PHP_SRC="${PHP_SOFT}.tar.bz2"
PHP_URL="http://mirrors.sohu.com/php/$PHP_SRC"
PHP_DIR="/usr/local/php5"
auto_install_php(){
if [ -d /usr/local/php ];then
break
fi
cd $HOME
yum -y install gcc-c++ gd libjpeg-devel libjpeg libpng libpng-devel libxml2 libxml2-devel freetype freetype-devel bison bison-devel
wget -c $PHP_URL
tar -xjvf $PHP_SRC
cd $PHP_SOFT
./configure \
--prefix=${PHP_DIR} \
--enable-fpm \
--enable-debug \
--enable-mbstring \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-curl \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-config-file-path=${PHP_DIR}/etc
make
make install
\cp php.ini-development $PHP_DIR/etc/php.ini
\cp $PHP_DIR/etc/php-fpm.conf.default $PHP_DIR/etc/php-fpm.conf
\cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig --add php-fpm
service php-fpm start
}
TEMP=$(mktemp -t test.XXXXXX)
while [ 1 ]
do
dialog --menu "安装LNMP服务" 20 30 10 1 "安装Nginx" 2 "安装MySQL" 3 "安装PHP" 0 "退出" 2>$TEMP
if [ $? -eq 1 ];then
break
fi
selection=$(cat $TEMP)
case $selection in
1)
auto_install_nginx
;;
2)
auto_install_mysql
;;
3)
auto_install_php
;;
0)
break
;;
*)
dialog --msgbox "选择错误,请重选" 15 30
esac
done
rm -r $TEMP 2> /dev/null

LNMP Shell脚本发布的更多相关文章

  1. mac链接linux终端,shell脚本发布代码

    项目的业务需求:从mac端直接连上linux服务终端,并发布相关的代码 一.使用ssh链接上linux服务端 1.cd ~/.ssh 2.vi config,按照下面的内容配置config文件,然后: ...

  2. 【Shell】使用Shell脚本发布项目

    第一次写Shell脚本,没经验,是直接写呢,还是要走流程( ̄▽ ̄)~* ---------------------------------------------------------------- ...

  3. springboot打包不同环境配置与shell脚本部署

    本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assembly-plu ...

  4. 解决Jenkins用shell脚本部署后,Jenkins自动杀掉启衍生出来的守护进程

    Jenkins部署java项目遇到的问题: 1.Jenkins执行构建后,需要手动执行startup.sh,站点才能正常访问 产生原因: shell脚本发布时,会衍生进程,Jenkins默认会自动杀掉 ...

  5. Shell脚本,自动化发布tomcat项目【转载】

    Shell脚本,自动化发布tomcat项目脚本. 1. vko2c_auto_build_by_scp.sh 文件内容: #---------------------start------------ ...

  6. Shell脚本,自动化发布tomcat项目【转】

    Shell脚本,自动化发布tomcat项目脚本. 1. vko2c_auto_build_by_scp.sh 文件内容: #---------------------start------------ ...

  7. Shell脚本一键安装LNMP环境

    https://sourceforge.net/projects/opensourcefile/files/ Nginx是一款高性能的HTTP和反向代理服务器.Nginx在反向代理,Rewrite规则 ...

  8. 一个自动安装LNMP的简洁Shell脚本

    此脚本在生产服务器上使用了一年多,本脚本崇尚简单唯美,只需要一个脚本就可以在任何一台有网络的服务器上自动配置LNMP.本脚本会在脚本执行目录下,建packages目录用于存放LNMP所需要的软件.大家 ...

  9. 结合docker发布后端项目(基于gradle包管理)的shell脚本

    结合docker发布后端项目(基于gradle包管理)的shell脚本 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理) 目前主流的 ...

随机推荐

  1. 我把数表A了

    真kx 之前打一棵沙雕主席树,复杂度和正解一毛一样,结果常数爆炸了! 我一直天真的认为卡卡常这题就能AC,然后卡常卡到死也没A掉,极限数据大概跑了1.1s 今天终于打正解了,离线处理,可以用常数更小的 ...

  2. 【PyTorch教程】P3. Python学习中的两大法宝函数(当然也可以用在PyTorch)

    温馨提示:为了更好的教程体验,提供视频.阅读地址 Youtube: https://www.youtube.com/playlist?list=PLgAyVnrNJ96CqYdjZ8v9YjQvCBc ...

  3. Vue计算属性缓存(computed) vs 方法

    Vue计算属性缓存(computed) vs 方法 实例 <div id="example"> <p>Original message: "{{ ...

  4. 利用DI实现级联删除 - xms跨平台基础框架 - 基于.netcore

    一.引言 所谓级联删除是指删除一条记录后,附带关联记录也一起删除,比如删除客户后,联系人也一起删除: 以往我们会依赖于数据库表的外键约束,但存在着明显的问题,增加数据库压力.提示不友好.职责越界.事务 ...

  5. Java多线程-CountDownLatch、CyclicBarrier、Semaphore

    上次简单了解了多线程中锁的类型,今天要简单了解下多线程并发控制的一些工具类了. 1. 概念说明: CountDownLatch:相当于一个待执行线程计数器,当计数减为零时表示所有待执行线程都已执行完毕 ...

  6. Zabbix日志监控插件

    #!/usr/bin/env python # coding:utf-8 import re import os import sys import logging logging.basicConf ...

  7. Ansible之系列命令详解

    ansible系列命令有:ansible.ansible-doc.ansible-playbook.ansible-vault.ansible-console.ansible-galaxy.ansib ...

  8. PHP代码安全有必要了解下

    攻击者通过构造恶意SQL命令发送到数据库,如果程序未对用户输入的 SQL命令执行判断过滤,那么生成的SQL语句可能会绕过安全性检查,插入其他用于修改后端数据库的语句,并可能执行系统命令,从而对系统造成 ...

  9. 面试官问我:谈谈对Java GC的了解?回答完让我回家等消息....

    JVM的运行数据区 首先我简单来画一张 JVM的结构原理图,如下. 我们重点关注 JVM在运行时的数据区,你可以看到在程序运行时,大致有5个部分. 1.方法区 不止是存“方法”,而是存储整个 clas ...

  10. pat 1041 Be Unique(20 分)

    1041 Be Unique(20 分) Being unique is so important to people on Mars that even their lottery is desig ...