• LNMP架构介绍


    LNMP架构

    LNMP架构介绍
    1)使前端web服务和后端存储服务进行串联
    2)主要实现处理PHP程序动态请求
    
    LNMP的工作原理
    LNMP:
        L:表示linux 
        N:表示Nginx 
        M:表示mysql 
        P:表示PHP
    工作原理:
    前端接收用户的请求,到达nginx后,nginx服务会先判断用户的请求是否可以处理,如果可以处理的先自己处理,如果处理不了的,nginx服务先通过fastcgi_pass指令与通过fastcgi接口将处理不了的请求抛送给PHP服务,php会通过php-fpm进程来接收到nginx抛送过来的请求,同时php服务会通过wrapper进程来识别这个请求,然后会交给php的解析器来进行识别,php解析器识别后会调取数据库资源,让数据库识别用户的请求,最终将要调取的数据识别出来,返还给php进程wrapper,再返还给php进程php-fpm,再返回给fastgci接口交给nginx客户端,nginx客户端接收到这个请求的结果响应给用户
    

    LNMP架构部署

    第一步:安装LNMP架构相关软件

    1.部署linux系统
    部署完成后,需要进行基础优化(防火墙关闭,selinux关闭,/tmp目录权限为1777)
    
    2.部署nginx服务
    安装过程详解:http://1a7f2dd7.wiz03.com/share/s/0qvOTn10-AEH29_zxM18oPGG1QICGl14RkIx2GujYl2NuYca
    
    3.部署mysql服务
    第一个里程:下载mysql软件
    mysql官方下载链接地址:ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/
    wget ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz
    [root@web01 tools]# tar xf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz
    [root@web01 tools]# mv mysql-5.6.41-linux-glibc2.12-x86_64 /application/mysql-5.6
    第二个里程:创建软链接
    [root@web01 mysql-5.6]# ln -s /application/mysql-5.6/ /application/mysql
    第三个里程:创建数据库管理用户,并进行授权数据目录
    [root@web01 mysql]# useradd -M -s /sbin/nologin mysql
    [root@web01 mysql]# chown -R mysql. /application/mysql/data/
    第四个里程:对数据库进行初始化
    [root@web01 mysql]# scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
    第五个里程:启动mysql服务
    [root@web01 mysql]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
    #将默认位的mysql位置改成现在安装的位置
    [root@web01 mysql]# sed -ri "s#/usr/local#/application#g" /etc/init.d/mysqld /application/mysql/bin/mysqld_safe
    #因版本不同,需要现在的配置文件覆盖系统原来的配置文件
    [root@web01 mysql]# cp /application/mysql/support-files/my-default.cnf /etc/my.cnf 
    cp: overwrite `/etc/my.cnf'? y
    [root@web01 mysql]# /etc/init.d/mysqld start
    第六个里程:设置mysql密码
    [root@web01 ~]# /application/mysql/bin/mysqladmin -uroot password "oldboy"
    [root@web01 ~]# /application/mysql/bin/mysql -uroot -poldboy
    

    第二步:部署PHP环境

    第一个里程:安装PHP软件依赖关系
    [root@web01 tools]# yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-t urbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
    libiconv软件安装---字符集转换库(默认可以不进行安装了)
    cd /server/tools
     #wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
     tar zxf libiconv-1.14.tar.gz
     cd libiconv-1.14
     ./configure --prefix=/usr/local/libiconv
      make && make install
      #wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
       yum -y install libmcrypt-devel mhash mcrypt
       rpm -qa libmcrypt-devel mhash mcrypt
       第二个里程:安装PHP软件
       php官方网站下载:php.net
       本地不安装mysql, 将--with-mysqli=mysqlnd设为mysqlnd即可
    [root@web01 sbin]# 
    ./configure   
    --prefix=/application/php-5.5.32  
    --with-mysqli=mysqlnd   
    --with-pdo-mysql=mysqlnd   
    --with-iconv-dir=/usr/local/libiconv  
    --with-freetype-dir --with-jpeg-dir 
    --with-png-dir  
    --with-zlib 
    --with-libxml-dir=/usr 
    --enable-xml 
    --disable-rpath 
    --enable-bcmath 
    --enable-shmop 
    --enable-sysvsem 
    --enable-inline-optimization 
    --with-curl 
    --enable-mbregex 
    --enable-fpm 
    --enable-mbstring 
    --with-mcrypt 
    --with-gd 
    --enable-gd-native-ttf 
    --with-openssl 
    --with-mhash 
    --enable-pcntl 
    --enable-sockets 
    --with-xmlrpc 
    --enable-soap 
    --enable-short-tags 
    --enable-static 
    --with-xsl 
    --with-fpm-user=www 
    --with-fpm-group=www 
    --enable-ftp 
    --enable-opcache=no
    
    ##防错(以下信息可以不进行配置了)
    ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/
    touch ext/phar/phar.phar
    make && make install
    ln -s /application/php-5.5.32/ /application/php
    第三个里程:设置PHP程序配置文件
    cp php.ini-production /application/php-5.5.32/lib/
        cd /application/php/etc/
        cp php-fpm.conf.default php-fpm.conf
    第四个里程:启动PHP服务
    /application/php/sbin/php-fpm
    netstat -lntup|grep php
        tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      6251/php-fpm
    

    第三部:进行软件直接的结合,nginx与php结合

    1.编写nginx配置文件
    [root@web01 blog]# cat ../../conf/extra/blog.conf 
    server {
            listen       80; 
            server_name  blog.etiantian.org;
            root   html/blog;
            index  index.php index.html index.htm;
        location ~* .*.(php|php5)?$ {
          fastcgi_pass 127.0.0.1:9000;
              fastcgi_index index.php;
              include fastcgi.conf;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }        
    }
    [root@web01 blog]# 
    
    2.编辑php页面
    [root@web01 blog]# cat test_info.php
    <?php
         //$link_id=mysql_connect('主机名','用户','密码');
         //mysql -u用户 -p密码 -h 主机
          $link_id=mysql_connect('localhost','root','oldboy') or mysql_error();
          if($link_id){
                    echo "mysql successful by oldboy !
    ";
              }else{
                 echo mysql_error();
           }
    ?>
    
    3.测试访问

    部署一个真实的网站

    第一个里程:上传和下载网站代码
    第二个里程:解压代码程序,将代码和序保存到站点目录并进行授权
    cd /server/tools
    tar xf wordpress-4.7.3-zh_CN.tar.gz 
     mv wordpress/* /application/nginx/html/blog/
    chown -R www.www /application/nginx/html/blog/
    第三个里程:直接访问blog网站,进行初始化操作
    创建数据库:
    create database wordpress;
    show databases;
    创建连接数据用户信息
    grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';
    select user,host from mysql.user;
    
  • 相关阅读:
    Oracle DB 管理数据库的空间
    五 Django 1.5.4 User Authentication 用户认证
    接口开放在即,先学招行做好微信内容营销
    WPF的ItemsControl设置数据源以及Binding使用
    WPF中后台代码停止RepeatBehavior=RepeatBehavior.Forever的办法
    WPF中使用RenderTransformOrigin来控制动画的起点
    使用Rectangle+ImageBrush来代替Image,解决图片模糊的问题
    WPF中Style文件引用另一个Style文件中的样式
    WPF中用后台C#代码为TabItem设置Background属性
    WPF中设置Border的BorderThickness属性会让背景图片产生模糊感
  • 原文地址:https://www.cnblogs.com/yjiu1990/p/10508659.html
Copyright © 2020-2023  润新知