• lnmp的一键部署(脚本)


    #!/bin/bash

    #安装环境依赖包

    systemctl stop firewalld

    systemctl disable firewalld

    setenforce 0

    yum -y install expect &> /dev/null

    nginx() {

    yum -y install gcc gcc-c++ pcre-devel zlib-devel make

    useradd -M -s /sbin/nologin nginx

    cd /opt

    if [ -f nginx-1.15.9.tar.gz ];then

    echo "安装包已存在,正在解压"

    tar xzvf nginx-1.15.9.tar.gz

    else

    echo "安装包不存在,请将安装包放在opt目录下"

    fi

    cd nginx-1.15.9/

    ./configure \

    --prefix=/usr/local/nginx \

    --user=nginx \

    --group=nginx \

    --with-http_stub_status_module

    make && make install

    #路径优化

    cp /usr/local/nginx/sbin/nginx /usr/local/sbin/

    #检查配置文件

    nginx

    nginx -t

    if [ $? -eq 0 ];then

    echo "nginx安装成功"

    else

    echo "nginx安装失败,请检查"

    fi

    killall -s HUP nginx

    echo "[Unit]

    Description=nginx

    After=network.target

    [Service]

    Type=forking

    PIDFile=/usr/local/nginx/logs/nginx.pid

    ExecStart=/usr/local/nginx/sbin/nginx

    ExecReload=/usr/bin/kill -s HUP $MAINPID

    ExecStop=/usr/bin/kill -s QUIT $MAINPID

    PrivateTmp=true

    [Install]

    WantedBy=multi-user.target" > /lib/systemd/system/nginx.service

    chmod 754 /lib/systemd/system/nginx.service

    systemctl enable nginx.service

    killall -3 nginx

    systemctl start nginx

    }

    mysql() {

    yum -y install gcc gcc-c++ pcre-devel zlib-devel make

    yum -y install \

    ncurses \

    ncurses-devel \

    bison \

    cmake

    useradd -s /sbin/nologin  mysql

    cd /opt

    if [ -f mysql-boost-5.7.20.tar.gz ];then

    echo "安装文件已经存在正在解压"

    tar xzvf mysql-boost-5.7.20.tar.gz

    else

    echo "安装文件不存在,请检查"

    fi

    cd /opt/mysql-5.7.20/

    cmake \

    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

    -DSYSCONFDIR=/etc \

    -DSYSTEMD_PID_DIR=/usr/local/mysql \

    -DDEFAULT_CHARSET=utf8  \

    -DDEFAULT_COLLATION=utf8_general_ci \

    -DWITH_INNOBASE_STORAGE_ENGINE=1 \

    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

    -DMYSQL_DATADIR=/usr/local/mysql/data \

    -DWITH_BOOST=boost \

    -DWITH_SYSTEMD=1

    make && make install

    #对数据库进行权限调整

    chown -R mysql:mysql /usr/local/mysql/

    echo "[client]

    port = 3306

    default-character-set=utf8

    socket = /usr/local/mysql/mysql.sock

    [mysql]

    port = 3306

    default-character-set=utf8

    socket = /usr/local/mysql/mysql.sock

    [mysqld]

    user = mysql

    basedir = /usr/local/mysql

    datadir = /usr/local/mysql/data

    port = 3306

    character_set_server=utf8

    pid-file = /usr/local/mysql/mysqld.pid

    socket = /usr/local/mysql/mysql.sock

    server-id = 1

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES" > /etc/my.cnf

    chown mysql:mysql /etc/my.cnf

    #设置环境变量

    echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile

    echo 'export PATH' >> /etc/profile

    export PATH

    #初始化数据库

    cd /usr/local/mysql/

    bin/mysqld \

    --initialize-insecure \

    --user=mysql \

    --basedir=/usr/local/mysql \

    --datadir=/usr/local/mysql/data

    cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

    systemctl start mysqld

    systemctl enable mysqld

    /usr/bin/expect <

    spawn mysqladmin -u root -p password 

    expect {

    "Enter password"

    {send "\r";exp_continue}

    "New password"

    {send "abc123\r";exp_continue}

    "Confirm new password"

    {send "abc123\r"}

    }

    expect eof

    EOF

    php() {

    yum -y install \

    libjpeg \

    libjpeg-devel \

    libpng libpng-devel \

    freetype freetype-devel \

    libxml2 \

    libxml2-devel \

    zlib zlib-devel \

    curl curl-devel \

    openssl openssl-devel

    cd /opt

    find /opt -name php*

    if [ $? -gt 0 ];then

    echo "未找到安装包,请将php安装包放置在/opt目录下"

    else

    tar xjvf php-7.1.10.tar.bz2

    echo "安装包已解压"

    fi

    cd php-7.1.10

    ./configure \

    --prefix=/usr/local/php \

    --with-mysql-sock=/usr/local/mysql/mysql.sock \

    --with-mysqli \

    --with-zlib \

    --with-curl \

    --with-gd \

    --with-jpeg-dir \

    --with-png-dir \

    --with-freetype-dir \

    --with-openssl \

    --enable-fpm \

    --enable-mbstring \

    --enable-xml \

    --enable-session \

    --enable-ftp \

    --enable-pdo \

    --enable-tokenizer \

    --enable-zip

    make && make install

    cp php.ini-development /usr/local/php/lib/php.ini

    sed -i 's/mysqli.default_socket =/mysqli.default_socket = \/usr\/local\/mysql\/mysql.sock/' /usr/local/php/lib/php.ini

    sed -i 's/date.timezone =/date.timezone = Asia\/Shanghai' /usr/local/php/lib/php.ini

    /usr/local/php/bin/php -m

    cd /usr/local/php/etc/

    cp  php-fpm.conf.default php-fpm.conf

    cd /usr/local/php/etc/php-fpm.d/

    cp www.conf.default www.conf

    sed -i 's/; pid = run/php-fpm.pid/pid = run\/php-fpm.pid/' /usr/local/php/etc/php-fpm.conf

    /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini

    netstat -anpt | grep 9000

    if [ $? -eq 0 ];then

    echo "服务已开启"

    else

    echo "服务未开启,请检查"

    fi

    cp -r /usr/local/php/bin/ /usr/local/bin/

    sed -i '42alocation ~ \.php$ {\n        root        html;\n        fastcgi_pass   127.0.0.1:9000;\n          fastcgi_index  index.php;\n        fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;\n        include        fastcgi_params;\n}' /usr/local/nginx/conf/nginx.conf

    /usr/bin/expect <

    spawn mysql -uroot -p123456

    expect {

    "mysql> "

    { send "CREATE DATABASE bbs;\r" exp_continue; }

    }

    expect {

    "mysql> "

    { send "GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';\r" exp_continue; }

    }

    expect {

    "mysql> "

    { send "GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';\r" exp_continue; }

    }

    expect {

    "mysql> "

    { send "flush privileges;\r"}

    }

    expect eof

    EOF

    echo "

    phpinfo();

    ?>" > /usr/local/nginx/html/index.php

    systemctl restart nginx

    }

    discuz() {

    cd /opt

    if [ -f Discuz_X3.4_SC_UTF8.zip ];then

    echo "安装文件已存在,正在解压"

    unzip Discuz_X3.4_SC_UTF8.zip  -d /tmp

    else

    echo "安装文件不存在,请检查"

    fi

    cd /tmp/dir_SC_UTF8/

    cp -r upload/ /usr/local/nginx/html/bbs/

    cd /usr/local/nginx/html/bbs/

    chown -R root:nginx ./config/

    chown -R root:nginx ./data/

    chown -R root:nginx ./uc_client/

    chown -R root:nginx ./uc_server/

    chmod -R 777 ./config/

    chmod -R 777 ./data/

    chmod -R 777 ./uc_client/

    chmod -R 777 ./uc_server/

    }

    nginx

    mysql

    php

    discuz

     

  • 相关阅读:
    8.6 枚举类型
    【数据结构】图的广度优先遍历
    类和对象:初始化列表,静态成员,友元,内部类,匿名对象
    13、Efficient Geometry-aware 3D Generative Adversarial Networks
    [SQL开发笔记]BETWEEN操作符:选取介于两个值之间的数据范围内的值
    css自学框架之图片灯箱展示
    Flask使用Nacos作为服务的配置中心
    MessageQueue和Looper学习
    pmp新考纲全真模拟题,提分敏捷+情景
    Gradle系列——Gradle的build.gradle文件详情,项目发布(基于Gradle文档7.5)day3-3
  • 原文地址:https://blog.csdn.net/a_b_e_l_/article/details/126522811