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

     
  • 相关阅读:
    汇编-实验9
    Starling开源手势库AcheGesture
    Robotlegs2的Starling扩展
    Flash Builder 4.6/4.7 注释以及字体大小修改
    js中函数的理解
    js对象引用赋值后
    var声明提前 undefined
    光棍节程序员闯关秀
    body和普通div背景图宽高百分比的区别
    笔试题
  • 原文地址:https://www.cnblogs.com/Template/p/9082799.html
Copyright © 2011-2022 走看看