• 001_LNMP 环境搭建


    LNMP 环境搭建(Linux Nginx MariaDB PHP)

    安装顺序:MariaDB -->PHP-->Nginx

    1. MariaDB安装

    官方下载网站:https://downloads.mariadb.org/

    1.1 安装环境准备

    #### 安装依赖库
    yum -y install libaio-devel libaio
    #### 查询自带数据库
    rpm -qa |grep mariadb
    #### 卸载自带MariaDB
    yum -y remove mariadb*
    

    1.2 获取MariaDB

    #### 下载MariaDB
    wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.8/bintar-linux-glibc_214-x86_64/mariadb-10.2.8-linux-glibc_214-x86_64.tar.gz
    
    #### 解压
    tar -zxvf mariadb-10.2.8-linux-glibc_214-x86_64.tar.gz
    #### 创建存储路径、账户等
    mv mariadb-10.2.8-linux-glibc_214-x86_64 /usr/local/mariadb
    cd /usr/local/mariadb
    mkdir -p /data/mysql
    useradd -s /sbin/nologin mysql
    chown -R mysql.mysql /data/mysql
    

    1.3 初始化MariaDB

    ./scripts/mysql_install_db 
    --user=mysql --datadir=/data/mysql 
    --basedir=/usr/local/mariadb
    

    1.4 拷贝配置文件、服务

    cp support-files/my-large.cnf /etc/my.cnf
    cp support-files/mysql.server /etc/init.d/mysqld
    chmod 755 !$
    vim /etc/init.d/mysqld
    定义:
    basedir=/usr/local/mariadb
    datadir=/data/mysql
    

    1.5 启动MariaDB、加入启动项

    chkconfig --add mysqld
    chkconfig mysqld on
    /etc/init.d/mysqld start
    

    检查是否有正常启动ps aux |grep mysql

    1.6 添加到系统环境变量

    vi /etc/profile.d/mysql.sh
    export PATH=/usr/local/mariadb/bin:$PATH   # 加入到系统环境变量中
    source /etc/profile.d/mysql.sh
    

    2. PHP 安装

    官网:http://www.php.net/

    2.1 获取PHP

    下载:wget http://cn.php.net/distributions/php-5.6.31.tar.gz

    解压:tar -zxvf php-5.6.31.tar.gz

    2.2 安装环境准备

    安装依赖库等

    yum -y install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel openssl openssl-devel
    
    yum -y install epel-release
    
    yum -y install libmcrypt-devel
    

    yum源没有libmcrypt-devel这个包,只能借助epel的yum源,所以先安装epel,再安装libmcrypt

    创建用户:useradd -s /sbin/nologin php-fpm

    2.2 编译安装

    cd php-5.6.31

    ./configure 
    --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc 
    --enable-fpm --with-fpm-user=php-fpm 
    --with-fpm-group=php-fpm --with-mysql=mysqlnd 
    --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd 
    --with-libxml-dir --with-gd --with-jpeg-dir 
    --with-png-dir --with-freetype-dir 
    --with-iconv-dir --with-zlib-dir --with-mcrypt 
    --enable-soap --enable-gd-native-ttf 
    --enable-ftp --enable-mbstring --enable-exif 
    --disable-ipv6 --with-pear --with-curl 
    --enable-bcmath --enable-mbstring 
    --enable-sockets --with-gd --with-libxml-dir=/usr/local 
    --with-gettext --with-openssl
    

    make && make install

    2.3 配置文件

    vim /usr/local/php/etc/php-fpm.conf

    填入以下内容

    [global]
    pid = /usr/local/php/var/run/php-fpm.pid
    error_log = /usr/local/php/var/log/php-fpm.log
    [www]
    listen = /tmp/php-fcgi.sock
    listen.mode = 666
    user = php-fpm
    group = php-fpm
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 20
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    pm.max_requests = 500
    rlimit_files = 1024
    

    2.4 启动PHP

    #### 拷贝启动脚本
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    #### 设置权限
    chmod 755 /etc/init.d/php-fpm
    #### 设置开机启动
    chkconfig --add php-fpm
    chkconfig php-fpm on
    #### 启动PHP服务
    service php-fpm start
    

    查看服务是否正常启动:ps aux |grep php-fpm

    3. Nginx 安装

    3.1 获取Nginx

    下载:wget http://nginx.org/download/nginx-1.6.3.tar.gz

    解压:tar -zxvf nginx-1.6.3.tar.gz

    3.2 编译安装

    cd nginx-1.6.3

    ./configure 
    --prefix=/usr/local/nginx 
    --with-http_realip_module 
    --with-http_sub_module 
    --with-http_gzip_static_module 
    --with-http_stub_status_module 
    --with-pcre
    

    make && make install

    3.3 启动脚本

    #### 创建启动脚本
    vim /etc/init.d/nginx
    #### 设置权限
    chmod 755 /etc/init.d/nginx
    
    #!/bin/bash
    # chkconfig: - 30 21
    # description: http service.
    # Source Function Library
    . /etc/init.d/functions
    # Nginx Settings
    NGINX_SBIN="/usr/local/nginx/sbin/nginx"
    NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
    NGINX_PID="/usr/local/nginx/logs/nginx.pid"
    RETVAL=0
    prog="Nginx"
    start()
    {
        echo -n $"Starting $prog: "
        mkdir -p /dev/shm/nginx_temp
        daemon $NGINX_SBIN -c $NGINX_CONF
        RETVAL=$?
        echo
        return $RETVAL
    }
    stop()
    {
        echo -n $"Stopping $prog: "
        killproc -p $NGINX_PID $NGINX_SBIN -TERM
        rm -rf /dev/shm/nginx_temp
        RETVAL=$?
        echo
        return $RETVAL
    }
    reload()
    {
        echo -n $"Reloading $prog: "
        killproc -p $NGINX_PID $NGINX_SBIN -HUP
        RETVAL=$?
        echo
        return $RETVAL
    }
    restart()
    {
        stop
        start
    }
    configtest()
    {
        $NGINX_SBIN -c $NGINX_CONF -t
        return 0
    }
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      reload)
            reload
            ;;
      restart)
            restart
            ;;
      configtest)
            configtest
            ;;
      *)
            echo $"Usage: $0 {start|stop|reload|restart|configtest}"
            RETVAL=1
    esac
    exit $RETVAL
    

    3.4 配置文件

    cd /usr/local/nginx/conf/;mv nginx.conf nginx.conf.bak

    vim nginx.conf

    user nobody nobody;
    worker_processes 2;
    error_log /usr/local/nginx/logs/nginx_error.log crit;
    pid /usr/local/nginx/logs/nginx.pid;
    worker_rlimit_nofile 51200;
    events
    {
        use epoll;
        worker_connections 6000;
    }
    http
    {
        include mime.types;
        default_type application/octet-stream;
        server_names_hash_bucket_size 3526;
        server_names_hash_max_size 4096;
        log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
        ' $host "$request_uri" $status'
        ' "$http_referer" "$http_user_agent"';
        sendfile on;
        server_tokens  off;   # 关闭web nginx版本号
        tcp_nopush on;
        keepalive_timeout 30;
        client_header_timeout 3m;
        client_body_timeout 3m;
        send_timeout 3m;
        connection_pool_size 256;
        client_header_buffer_size 1k;
        large_client_header_buffers 8 4k;
        request_pool_size 4k;
        output_buffers 4 32k;
        postpone_output 1460;
        client_max_body_size 10m;
        client_body_buffer_size 256k;
        client_body_temp_path /usr/local/nginx/client_body_temp;
        proxy_temp_path /usr/local/nginx/proxy_temp;
        fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
        fastcgi_intercept_errors on;
        tcp_nodelay on;
        gzip on;
        gzip_min_length 1k;
        gzip_buffers 4 8k;
        gzip_comp_level 5;
        gzip_http_version 1.1;
        gzip_types text/plain application/x-javascript text/css text/htm
        application/xml;
        server
        {
            listen 80;
            server_name localhost;
            index index.html index.htm index.php;
            root /usr/local/nginx/html;
            location ~ .php$
            {
                include fastcgi_params;
                fastcgi_pass unix:/tmp/php-fcgi.sock; #这里需要注意,有的PHP安装后并未启动sock文件;启用的是127.0.0.1:9000端口;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
            }
        }
    }
    

    检查配置文件是否正确:/usr/local/nginx/sbin/nginx -t

    3.5 设置开机启动:

    chkconfig --add nginx

    chkconfig nginx on

    启动nginx:
    /etc/init.d/nginx start

    查看80端口是否工作:
    netstat -lntp |grep 80

  • 相关阅读:
    Python学习笔记:pandas.read_csv分块读取大文件(chunksize、iterator=True)
    Python学习笔记:os.stat().st_size、os.path.getsize()获取文件大小
    7-1 打印沙漏
    7-1 币值转换
    7-1 抓老鼠啊~亏了还是赚了?
    第四周编程总结哦也
    2018秋寒假作业6—PTA编程总结3
    PTA编程总结3
    PTA编程总结1
    秋季学期学习总结
  • 原文地址:https://www.cnblogs.com/cy-8593/p/12333567.html
Copyright © 2020-2023  润新知