CentOS7一键编译安装LNMP环境

#!/bin/sh
#!/bin/sh
#author: vim
#qq: 82996821
#OS: Centos7.2
#filename: auto_install_lnmp.sh

#init variable
PHP_VERSION=‘7.0.20‘    #PHP版本号
NGINX_VERSION=‘1.10.3‘    #NGINX版本号

TOOL_DIR=`pwd`
APP_INSTALL_DIR=‘/usr/local‘    #服务安装路径
DATA_DIR=‘/data‘    #数据目录

#source function library
. /etc/init.d/functions

installMySQL(){
    echo "----- install mysql -----"
    cd ${TOOL_DIR}
    [ ! -f mysql57-community-release-el7-8.noarch.rpm  ] &&     wget https://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
    rpm -ivh mysql57-community-release-el7-8.noarch.rpm
    yum -y install mysql-server
    [ $? -eq 0  ]&&action $"install mysql:" /bin/true||action $"install mysql:" /bin/false

cat > /etc/my.cnf <<EOF
[mysqld]
#开启binlog日志
server-id=1
log-bin=mysql-bin
#设置端口
port=$MYSQL_PORT
#数据文件目录
datadir=$DATA_DIR/mysql
socket=$DATA_DIR/mysql/mysql.sock

symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld.pid

#开启慢查询日志
slow-query-log=On
slow_query_log_file=/var/log/mysql_slow_query.log
long_query_time=2
log_queries_not_using_indexes=ON

#控制error log、genera log,等等记录日志的显示时间参数
log_timestamps=SYSTEM
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
sql_mode=‘NO_ENGINE_SUBSTITUTION‘

[client]
socket=$DATA_DIR/mysql/mysql.sock
EOF

    systemctl start mysqld
    [ $? -eq 0  ]&&action $"start mysql:" /bin/true||action $"start mysql:" /bin/false
    systemctl enable mysqld
}

installMakeMySQL(){
    cd ${TOOL_DIR}
    yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison
    useradd -r -s /sbin/nologin mysql
    [ ! -f mysql-boost-5.7.18.tar.gz  ] &&     wget https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz
    tar zxf mysql-boost-5.7.18.tar.gz
    cd mysql-5.7.18
    cmake -DCMAKE_INSTALL_PREFIX=${APP_INSTALL_DIR}/mysql-5.17.18 -DMYSQL_DATADIR=${DATA_DIR}/mysql -DMYSQL_UNIX_ADDR=${DATA_DIR}/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=./boost

    make && make install
    [ $? -eq 0  ]&&action $"install make mysql:" /bin/true||action $"install make nginx:" /bin/false

    ln -s ${APP_INSTALL_DIR}/mysql-5.17.18/ /usr/local/mysql

cat > /etc/my.cnf <<EOF
[mysqld]
server-id=1
log-bin=mysql-bin
port=$MYSQL_PORT
datadir=$DATA_DIR/mysql
socket=$DATA_DIR/mysql/mysql.sock

symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

slow-query-log=On
slow_query_log_file=/var/log/mysql_slow_query.log
long_query_time=2
log_queries_not_using_indexes=ON

log_timestamps=SYSTEM
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
sql_mode=‘NO_ENGINE_SUBSTITUTION‘

[client]
socket=$DATA_DIR/mysql/mysql.sock
EOF
    mkdri ${DATA_DIR}/mysql -p
    chown mysql.mysql /data/mysql/
    ${APP_INSTALL_DIR}/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
    ${APP_INSTALL_DIR}/mysql/support-files/mysql.server start
    [ $? -eq 0  ]&&action $"start mysql:" /bin/true||action $"start mysql:" /bin/false
    echo "${APP_INSTALL_DIR}/mysql/support-files/mysql.server start" >> /etc/rc.local
    systemctl enable mysqld
}

installNginx(){
    echo "----- step : install nginx-----"
    yum -y install pcrepcre-devel openssl openssl-devel zlib zlib-devel
    #create nginx user
    useradd www -s /sbin/nologin -M

    cd ${TOOL_DIR}
    [ ! -f nginx-${NGINX_VERSION}.tar.gz  ] &&     wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
    tar xf nginx-${NGINX_VERSION}.tar.gz
    cd nginx-${NGINX_VERSION}

    ./configure --user=www --group=www --prefix=${APP_INSTALL_DIR}/nginx-${NGINX_VERSION} --with-http_stub_status_module --with-http_ssl_module
    make && make install
    [ $? -eq 0  ]&&action $"install nginx:" /bin/true||action $"install nginx:" /bin/false
    
    ln -s ${APP_INSTALL_DIR}/nginx-${NGINX_VERSION}/ ${APP_INSTALL_DIR}/nginx

    ${APP_INSTALL_DIR}/nginx/sbin/nginx
    [ $? -eq 0  ]&&action $"start nginx:" /bin/true||action $"start nginx:" /bin/false
    echo "${APP_INSTALL_DIR}/nginx/sbin/nginx"  >> /etc/rc.local
    
}

installPHP(){
    echo "----- step : install php -----"
    yum -y install libxml2-devel libxml2 libxml2-devel curl curl-devel  libjpeg-devel libpng-devel freetype-devel libxslt-devel
    cd ${TOOL_DIR}
    [ ! -f php-${PHP_VERSION}.tar.gz ] &&     wget http://cn2.php.net/distributions/php-${PHP_VERSION}.tar.gz
    tar xf php-${PHP_VERSION}.tar.gz
    cd php-${PHP_VERSION}
    ./configure      --prefix=${APP_INSTALL_DIR}/php-${PHP_VERSION}     --with-config-file-path=${APP_INSTALL_DIR}/php-${PHP_VERSION}/etc     --enable-mbstring     --enable-sockets     --enable-fpm     --with-mysqli     --enable-mysqlnd     --with-pdo-mysql=mysqlnd     --with-freetype-dir     --with-jpeg-dir     --with-png-dir     --with-zlib     --enable-xml     --disable-rpath     --enable-inline-optimization     --with-curl     --enable-mbregex     --with-gd     --enable-gd-native-ttf     --with-openssl     --enable-zip     --enable-short-tags     --enable-static     --with-fpm-user=www     --with-fpm-group=www

    make && make install
    [ $? -eq 0  ]&&action $"install php:" /bin/true||action $"install php:" /bin/false

    ln -s ${APP_INSTALL_DIR}/php-${PHP_VERSION} ${APP_INSTALL_DIR}/php

    echo "----- step : config php -----"
    cd ${TOOL_DIR}/php-${PHP_VERSION}
    cp php.ini-development ${APP_INSTALL_DIR}/php/etc/php.ini
    cd ${APP_INSTALL_DIR}/php/etc
    cp php-fpm.conf.default php-fpm.conf
    cd ${APP_INSTALL_DIR}/php/etc/php-fpm.d/
    cp www.conf.default www.conf

    #start php-fpm
    ${APP_INSTALL_DIR}/php/sbin/php-fpm -c ${APP_INSTALL_DIR}/php/etc/php.ini
    [ $? -eq 0  ]&&action $"start php:" /bin/true||action $"start php:" /bin/false
    echo "${APP_INSTALL_DIR}/php/sbin/php-fpm -c ${APP_INSTALL_DIR}/php/etc/php.ini"  >> /etc/rc.local
}

initAllEnv(){
    echo "----- step : add env -----"
    echo "export PATH=$PATH:$HOME/bin:${APP_INSTALL_DIR}/php/bin:${APP_INSTALL_DIR}/nginx/sbin/:/usr/local/mysql/bin/" >>/etc/profile
    source /etc/profile
    [ $? -eq 0  ]&&action $"initAllEnv:" /bin/true||action $"initAllEnv:" /bin/false
    echo "PATH: $PATH"
}

    AStr="Yum install MySQL"
    BStr="Make install MySQL"
    CStr="Make Install Nginx"
    DStr="Make install PHP"
    EStr="InitAll Environment"
    FStr="One key auto make install"

    
while true
do    
    echo "###############################################################"
    echo "<[email protected] [email protected]========================>"
    echo "A --${AStr}"
    echo "B --${BStr}"
    echo "C --${CStr}"
    echo "D --${DStr}"
    echo "E --${EStr}"
    echo "F --${FStr}"

    echo "------------------------------------------------"
    echo "Note: after 60s will exit"

    read -n1 -t60 -p "Choose one of A-B-C-D-E-:::" option
    option=${option:-0}

    flag0=$(echo $option|egrep "0"|wc -l)
    flag1=$(echo $option|egrep "q|Q"|wc -l)
    flag2=$(echo $option|egrep "[A-Fa-f]"|wc -l)

    if [ $flag0 -eq 1  ]; then
         exit 1
    elif [ $flag1 -eq 1 ]; then
         exit
    elif [ $flag2 -ne 1  ]; then
         echo "Pls input A--->F letter"
    fi

    echo -e "\nyour choose is: $option\n"
    echo "after 5s start install......"
    sleep 5
    case $option in
         A|a)
              installMySQL
         ;;
         B|b)
              installMakeMySQL
         ;;
         C|c)
              installNginx
         ;;
         D|d)
              installPHP
         ;;
         E|e)
              initAllEnv
         ;;
         f|F)
              installMakeMySQL
              installNginx
              configNginx
              installPHP
              initAllEnv
         ;;
         *)
         echo "Please input A-F,thank you!"
         #exit
         ;;
    esac
done
时间: 2024-10-25 06:37:25

CentOS7一键编译安装LNMP环境的相关文章

CentOS编译安装LNMP环境

这里是教大家如何在centos下利用源码编译安装LNMP环境. 工具/原料 centos服务器一台 自用电脑一台 准备篇 配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器 配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables   #编辑防火墙配置文件 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙) -A INPUT -m state -

centos下编译安装LNMP环境

自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持. PHP-FPM以守护进程在后台运行,Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回. Nginx和PHP-FPM的组合,是一种稳定.高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少. 二.依赖环境 yum -y install gcc gcc-c++ make cmake automake au

centos7.3编译安装LAMP环境并搭建WordPress博客

centos7.3编译安装LAMP环境并搭建WordPress博客 日期:2017年8月6日 软件版本: apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.27.tar.bz2 mariadb-10.2.7-linux-x86_64.tar.gz php-7.1.7.tar.bz2 wordpress-4.8-zh_CN.tar.gz xcache-3.2.0.tar.gz 1.编译安装apache2.4 yum groupinstall de

Centos 6.8编译安装LNMP环境

Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 一 准备工作 环境介绍: OS:Centos 6.8 最小化安装 Nginx:nginx-1.12.2.tar.gz mysql:mysql-boost-5.7.20.tar.gz php:php-7.2.0.tar.bz2 1.1.关闭SELINUX # 修改配置文件,重启服务后永久生效. sed

SaltStack之编译安装LNMP环境

使用saltstack编译安装LNMP环境 一,系统版本查看 二,安装salt-master和salt-minion 安装配置过程参考SaltStack概述及安装 三,修改配置文件 /etc/salt/master设置根的两个目录 四,设置Nginx安装文档 目录结构为 其中files文件夹下面放置的是源码包 install.sls是安装配置文件 install.sls include: - pkg.make nginx: user.present: - uid: 1001 nginx-inst

CentOS7.2编译安装LNMP

一.前言 1.环境说明 基础环境Linux+Nginx+MySQL+PHP linux:7.2 nginx:1.10.2 mysql:5.6.17 php:5.5.12 2.部署说明 php安装目录:/usr/local/php php.ini配置文件路径:/usr/local/php/etc/php.ini Nginx安装目录:/usr/local/nginx Nginx配置文件路径:/etc/nginx/nginx.conf Nginx网站根目录:/usr/local/nginx/html

centos7下编译安装lnmp和nginx代理实验

1.先安装mysql cd /usr/local/src wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql cd /usr/local/mysql useradd

CentOS7.1编译安装LNMP

系统CentOS7.1链接 http://mirrors.sohu.com/centos/7.1.1503/isos/x86_64/CentOS-7-x86_64-Minimal-1503-01.iso   md5值: d07ab3e615c66a8b2e9a50f4852e6a77  CentOS-7-x86_64-Minimal-1503-01.iso 系统为最小化安装,版本号: nginx:1.6.3 mysql:5.5.37 php:5.3.28 下面shell,没有多的版本判断设置,可

CentOS6.5 编译安装lnmp环境

yum -y install gcc gcc-c++ automake autoconf libtool glibc make libmcrypt安装 mkdir /usr/local/source && cd /usr/local/source #创建并进入源文件目录 [[email protected] source ]# wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=