zoukankan      html  css  js  c++  java
  • LNMP源码安装脚本

    LNMP安装脚本,脚本环境   #LNMP环境搭建centos6.8 2.6.32-696.28.1.el6.x86_64  nginx:1.12.2   mysql:5.6.36  PHP:5.5.36

    #!/bin/bash
    #LNMP环境搭建centos6.8 2.6.32-696.28.1.el6.x86_64 nginx:1.12.2 mysql:5.6.36 PHP:5.5.36
    trap 'echo "error line: $LINENO,error cmd: $BASH_COMMAND"' ERR
    . /etc/init.d/functions

    cd /usr/local/src
    [ `rpm -qa wget | wc -l` -ne 1 ] && yum -y install wget

    wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
    cd /etc/yum.repos.d/
    mv CentOS-Base.repo CentOS-Base.repo.bak
    cp /usr/local/src/CentOS6-Base-163.repo ./CentOS-Base.repo
    yum clean all #清除yum缓存
    yum makecache #重建缓存
    yum -y update

    cd /usr/local/src
    #添加epel外部扩展源
    wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    rpm -ivh epel-release-6-8.noarch.rpm

    #安装依赖包:
    yum -y install gcc gcc-c++ glibc gcc libtool cmake mcrypt libmcrypt-devel mhash mhash-devel libxslt-devel
    libjpeg libjpeg-devel libjpeg-turbo-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel
    zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel gd-devel ncurses ncurses-devel curl
    libcurl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel pcre-devel openssh-clients


    #进入到src目录下载nginx
    cd /usr/local/src && wget http://nginx.org/download/nginx-1.12.2.tar.gz

    #创建用户
    useradd -M -s /sbin/nologin www

    ##安装nginx-1.12.2
    tar xf nginx-1.12.2.tar.gz && cd nginx-1.12.2
    ./configure --user=www --group=www
    --prefix=/usr/local/nginx-1.12.2
    --with-http_stub_status_module
    --with-http_ssl_module
    --with-http_gzip_static_module
    --pid-path=/usr/local/nginx/nginx.pid


    #编译并安装
    make && make install
    RETVAL_Nginx=$?
    #创建软连接
    ln -s /usr/local/nginx-1.12.2 /usr/local/nginx
    ##安装mysql

    #现在mysql并解压
    cd /usr/local/src && wget -c http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz && tar xf mysql-5.6.36.tar.gz


    #添加mysql用户
    useradd -s /sbin/nologin -M mysql

    cd /usr/local/src/mysql-5.6.36

    cmake
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
    -DMYSQL_DATADIR=/usr/local/mysql/data
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DENABLED_LOCAL_INFILE=1
    -DEXTRA_CHARSETS=all
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_MYISAM_STORAGE_ENGINE=1
    -DWITH_READLINE=1

    make && make install
    RETVAL_Mysql=$?

    #配置权限
    chown -R root.mysql /usr/local/mysql
    chown -R mysql.mysql /usr/local/mysql/data

    #–basedir软件安装目录 –datadir数据存放目录 –user管理mysql的用户
    /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data


    cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    #将mysql服务加入开机自启动
    chkconfig --add mysqld && chkconfig mysqld on

    #将mysql命令添加环境变量中
    echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
    source /etc/profile

    #拷贝mysql配置文件
    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf


    ##安装PHP

    #安装libiconv 说明:此软件在centos6.8之后已经自带此软件功能,可以不进行安装
    cd /usr/local/src && wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
    tar xf libiconv-1.14.tar.gz && cd libiconv-1.14
    ./configure --prefix=/usr/local/libiconv && make && make install


    #下载PHP
    cd /usr/local/src && wget http://mirrors.sohu.com/php/php-5.5.36.tar.gz

    tar xf php-5.5.36.tar.gz && cd php-5.5.36

    #配置PHP(如果本地没有安装mysql 可以使用PHP自带的扩展--with-mysql=mysqlnd)
    ./configure

    --prefix=/usr/local/php-5.5.36

    --with-config-file-path=/etc

    --with-mysql=/usr/local/mysql

    --with-mysqli=/usr/local/mysql/bin/mysql_config

    --with-pdo-mysql=mysqlnd

    --with-iconv-dir=/usr/local/libiconv

    --with-freetype-dir
    --with-jpeg-dir
    --with-png-dir
    --with-pcre-regex
    --with-zlib
    --with-libxml-dir=/usr
    --with-curl
    --with-mcrypt
    --with-gd
    --with-openssl
    --with-mhash
    --with-xmlrpc
    --with-xsl
    --with-fpm-user=www
    --with-fpm-group=www
    --enable-soap
    --enable-short-tags
    --enable-shmop
    --enable-static
    --enable-ftp
    --enable-opcache=no
    --enable-xml
    --disable-rpath
    --enable-bcmath
    --enable-shmop
    --enable-sysvsem
    --enable-zip
    --enable-inline-optimization
    --enable-mbregex
    --enable-fpm
    --enable-mbstring
    --enable-gd-native-ttf
    --enable-pcntl
    --enable-sockets

    #防止报错/usr/local/src/php-5.5.36/sapi/cli/php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
    ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
    touch ext/phar/phar.phar

    make && make install
    RETVAL_Php=$?

    ln -sf /usr/local/php-5.5.36 /usr/local/php

    cp php.ini-production /usr/local/php-5.5.36/etc/php.ini
    cd /usr/local/php-5.5.36/etc/ && cp php-fpm.conf.default php-fpm.conf
    cp /usr/local/src/php-5.5.36/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && chmod +x /etc/init.d/php-fpm

    #配置脚本读取指定php配置文件
    sed -i 's#php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"#php_opts="--fpm-config $php_fpm_CONF -c /usr/local/php/etc/php.ini --pid $php_fpm_PID"#g' /etc/init.d/php-fpm


    echo -e "/etc/init.d/php-fpm start /usr/local/sbin/nginx /etc/init.d/mysqld start" >> /etc/rc.local

    if [ -d /usr/local/nginx-1.12.2 -a "$RETVAL_Nginx" -eq "0" ];then
      action "Installed Nginx" /bin/true
      echo -e "Use e[1;32m/usr/local/sbin/nginxe[0m to start nginx"
    else
      action "Install Nginx" /bin/false
    fi

    if [ -d /usr/local/mysql -a "$RETVAL_Mysql" -eq "0" ];then
      action "Installed Mysql" /bin/true
      echo -e "Use e[1;32m/etc/init.d/mysqlde[0m start to start mysql"
    else
      action "Install Mysql" /bin/false
    fi

    if [ -d /usr/local/php-5.5.36 -a "$RETVAL_Php" -eq "0" ];then
      action "Installed PHP" /bin/true
      echo -e "Use e[1;32m/etc/init.d/php-fpm starte[0m to start php-fpm"
    else
      action "Install PHP" /bin/false
    fi

     
  • 相关阅读:
    多表联合查询,利用 concat 模糊搜索
    order by 中利用 case when 排序
    Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)
    ASP.NET Core 2.2 基础知识(十八) 托管和部署 概述
    ASP.NET Core 2.2 基础知识(十七) SignalR 一个极其简陋的聊天室
    ASP.NET Core 2.2 基础知识(十六) SignalR 概述
    ASP.NET Core 2.2 基础知识(十五) Swagger
    ASP.NET Core 2.2 基础知识(十四) WebAPI Action返回类型(未完待续)
    linux磁盘管理 磁盘查看操作
    linux磁盘管理 文件挂载
  • 原文地址:https://www.cnblogs.com/Template/p/9082799.html
Copyright © 2011-2022 走看看