zoukankan      html  css  js  c++  java
  • LNMP搭建

    LNMP搭建

    1、下载并安装LNMP一键安装包(官网lnmp.org):

    tar -zxvf lnmp1.2-full.tar.gz

    cd lnmp1.2-full

    ./install.sh lnmp

    安装LNMP执行:wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp
    如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。
    按上述命令执行后,会出现如下提示:

    需要设置MySQL的root密码(不输入直接回车将会设置为root),输入后回车进入下一步,如下图所示:

    这里需要确认是否启用MySQL InnoDB,如果不确定是否启用可以输入 y ,输入 y 表示启用,输入 n 表示不启用。默认为y 启用,输入后回车进入下一步,选择MySQL版本:

    输入MySQL或MariaDB版本的序号,回车进入下一步,选择PHP版本:

    输入PHP版本的序号,回车进入下一步,选择是否安装内存优化:

    可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车。
    如果是LNMPA或LAMP的话还需要设置管理员邮箱

    再选择Apache/nginx版本

    提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。
    LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。
    成功提示 Nginx: OK,MySQL: OK,PHP: OK

    二.LNMP相关软件安装目录
    Nginx 目录: /usr/local/nginx/
    MySQL 目录 : /usr/local/mysql/
    MySQL数据库所在目录:/usr/local/mysql/var/
    PHP目录 : /usr/local/php/
    PHPMyAdmin目录 : /home/wwwroot/default/phpmyadmin/
    默认网站目录 : /home/wwwroot/default/
    Nginx日志目录:/home/wwwlogs/

    三.LNMP相关配置文件位置
    Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
    MySQL配置文件:/etc/my.cnf
    PHP配置文件:/usr/local/php/etc/php.ini
    php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
    四.LNMP状态管理命令
    LNMP 状态管理: lnmp {start|stop|reload|restart|kill|status}
    LNMP 各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
    五.配置文件

    vi /usr/local/nginx/conf/nginx.conf

    user www www;

    worker_processes auto;

    启动进程

    error_log /home/wwwlogs/nginx_error.log crit;

    错误日志

    pid /usr/local/nginx/logs/nginx.pid;

    主进程PID保存文件

    Specifies the value for maximum file descriptors that can be opened by this process.

    worker_rlimit_nofile 51200;

    文件描述符数量

    events
    {
    use epoll;

    网络I/O模型,建议linux使用epoll,FreeBSD使用kqueue

    epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能

    worker_connections 51200;

    单个工作进程最大允许连接数

    multi_accept on;

    }

    http

    整体环境配置

    {
    include mime.types;
    default_type application/octet-stream;

    设定mime类型,文件传送类型由mime.type文件定义

                server_names_hash_bucket_size 128; #保存服务器名字的hash表大小
                client_header_buffer_size 32k; #客户端请求头部缓冲区大小
                large_client_header_buffers 4 32k; #最大客户端头缓冲大小
                client_max_body_size 50m; #客户端最大上传文件大小(M)
    
                sendfile on;
    

    sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为 on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.

    高效文件传输

                tcp_nopush     on;
    

    这个是默认的,结果就是数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。(只在sendfile on时有效)

                keepalive_timeout 60;
    

    连接超时时间

                tcp_nodelay on;
    

    禁用nagle算法,也即不缓存数据。有效解决网络阻塞

                fastcgi_connect_timeout 300;
                fastcgi_send_timeout 300;
                fastcgi_read_timeout 300;
                fastcgi_buffer_size 64k;
                fastcgi_buffers 4 64k;
                fastcgi_busy_buffers_size 128k;
                fastcgi_temp_file_write_size 256k;
    

    fastcgi设置

        gzip on;
         gzip_min_length  1k;
        gzip_buffers     4 16k;
         gzip_http_version 1.1;
         gzip_comp_level 2;
         gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
         gzip_vary on;
         gzip_proxied   expired no-cache no-store private auth;
         gzip_disable   "MSIE [1-6].";
    
        #limit_conn_zone $binary_remote_addr zone=perip:10m;
        ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.
                server_tokens off;
    

    隐藏nginx版本号(curl -I 192.168.4.154可以查看,更加安全)

                #log format
         log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
    

    定义日志格式

    server
    {
    listen 80 default_server;
    #listen [::]:80 default_server ipv6only=on;

    监听80端口

                server_name www.lnmp.org;
    

    服务器名

                index index.html index.htm index.php; 
    

    默认网页文件

                root  /home/wwwroot/default;
    

    网页主目录

    error_page 404 /404.html;

    include enable-php.conf;

    location /nginx_status
    {
    stub_status on;
    access_log off;
    }

    开启status状态监测

    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
    {
    expires 30d;
    }

    静态文件处理,保存期30天

    location ~ .*.(js|css)?$
    {
    expires 12h;
    }

    js和css文件处理,保存期12小时

    location ~ /.
    {
    deny all;
    }

    access_log /home/wwwlogs/access.log access;

    正确访问日志

    }
    include vhost/*.conf;

    vhost/下子配置文件生效

    }

  • 相关阅读:
    ls命令输出文件的绝对路径
    grep命令用关系或查询多个字符串
    pthread_cond_timedwait
    移位运算溢出:右操作数须小于左操作数的位数
    Source Insight symbol not found
    break和continue能否跳出函数
    Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法. 重启服务
    git bash中不能显示中文
    docker初探
    C++ STL常见数据结构(容器)分类
  • 原文地址:https://www.cnblogs.com/ITniu/p/11153004.html
Copyright © 2011-2022 走看看