0514第二十次课:LNMP 1

一、LNMP架构介绍

  • LNMP和LAMP相识,只不过web服务由apache换成了nginx。

  • 并且php是作为一个独立服务存在的,这个服务叫做php-fpm

  • Nginx直接处理静态请求,动态请求会转发给php-fpm

    在lamp中php作为一个模块,在lnmp中php是作为一个服务。当用户请求时nginx会把它交给php然后与mysql进行交互。静态文件,如htmp或者图片nginx会直接处理从而加快速度。

二、mysql安装

由于之前已安装过mysql,这里就略过。

三、PHP安装

  1. 下载安装包

    cd /usr/local/src/php-5.6.30

  2. 清理之前编译的可执行文件及配置文件

    make clear

  3. 编译安装

    执行以下语句:

    ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --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 --with-pear --with-curl --with-openssl

    开始编译:

    make

    make install

    检查是否报错:

  4. 查看安装路径

    ll /usr/local/php-fpm/

    比之前安装多了sbin和var两个目录:

    sbin:启动php-fpm服务目录

    var: 存放php日志的目录

  5. 配置php.ini

    在解压安装包的目录中复制php.ini-production文件到php-fpm/etc文件中,重命名为php.ini

    cp php.ini-production /usr/local/php-fpm/etc/php.ini

  6. 配置php-fpm.conf

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

    写入以下内容:

     [global]
     pid = /usr/local/php-fpm/var/run/php-fpm.pid
     error_log = /usr/local/php-fpm/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
    
    
    
  7. 设置启动脚本

    把安装解压包中的init.d.php-fpm文件复制到/etc/init.d/并改名为php-fpm

    cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

    赋予775权限

    chmod 755 /etc/init.d/php-fpm

  8. 启动php

    service php-fpm start

    查看php进程

    ps -ef|grep php-fpm

四、Nginx

  • Nginx简介

    Nginx官网:nginx.org

    Nginx应用场景:web服务、反向代理、负载均衡

    Nginx分支:淘宝基于nginx开发的Tengine,使用与nginx一致。区别在于Tengine增加了一些定制化模块,在安全限速方面表现突出,另外它支持对接js/css合并。Nginx+lua相关组件和模块组成支持lua的高性能openresty,参考: http://jinnianshilongnian.iteye.com/blog/2280928

  • Nginx特点

    • 体积小

    • 处理能力强

    • 并发高

    • 可扩展性高


  • 安装Nginx
  1. 下载nginx安装包

    cd /usr/local/src

    wget http://nginx.org/download/nginx-1.17.0.tar.gz

  2. 编译安装

    cd /usr/local/src/nginx-1.17.0

    ./configure --prefix=/usr/local/nginx

    make && make install

  3. 查看nginx安装目录

    conf:nginx配置文件

    html:主页样例文件

    logs:日志

    sbin:核心进程文件


  • Nginx启动配置文件

    vim /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
    
    

  • 启动nginx

    修改权限为755

    chmod 755 /etc/init.d/nginx

    设置开机启动

    chkconfig --add nginx

    chkconfig nginx on

    启动/关闭/检查

    启动:

    /usr/local/nginx/sbin/nginx service nginx start

    关闭:

    pkill nginx //杀死nginx进程,停止nginx服务

    检查:

    /usr/local/nginx/sbin/nginx -t//检测配置文件语法错误

    启动并查看进程

    service nginx start


  • 修改nginx配置文件

    nginx配置文件:

    vim /usr/local/nginx/conf/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;
     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;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
            }    
        }	
    }
    
    

  • 测试解析PHP

    vim /usr/local/nginx/html/1.php

    添加以下内容:

    <?phpecho "hello";

    测试:

    curl localhost/1.php

转载于:https://my.oschina.net/u/3755326/blog/3054851

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值