• LNMP网站架构的安装部署


    网站架构组成介绍说明
    LNMP: Linux Nginx MySQL PHP

    nginx/apache(搬运工-中间件) --- 网站用户访问 html代码语言 css js 静态资源文件 --> 动态资源

    PHP-PHP代码           TOMCAT-java代码              Python-python代码           go ... 动态代码解析服务
         HTML        HTML            HTML

    网站架构工作原理介绍

      第一个历程:用户发出访问网站服务请求


      第二个历程:网站服务端会接收请求,并判断请求资源信息
        静态资源信息,由nginx静态网站服务进行处理,将站点目录中资源信息进行传输
        动态资源信息,由nginx利用fastcgi接口,将动态访问信息转发给PHP服务


      第三个历程:PHP服务接收到动态资源访问请求
        方式一:直接识别动态资源代码文件,进行翻译或解析,转换成HTML代码信息
        方式二:需要和数据库建立连接,读取数据或存储数据信息,再将PHP代码翻译为HTML代码,进行响应


      第四个历程:nginx服务接收到PHP响应HTML静态资源代码信息,会转发客户端浏览器


      第五个历程:客户端浏览器识别HTML代码信息,加载显示网站页面

    网站架构服务部署过程:
      Linux:
        · 系统中,/tmp/目录权限是否是 1(t)777
        · 系统安全优化 yum优化
      Nginx:
        · 确认nginx站点目录权限信息 属主权限设置好 ???
        · 确认好Nginx服务配置信息 nginx -t
      PHP部署过程:
        第一个历程:确认系统是否已经存在了PHP相关程序
          rpm -qa|grep php*
          yum remove -y php-xxx

        第二个历程:更新PHP软件下载源
          rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
          rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

        第三个历程:PHP程序相关软件下载安装
          yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb

          PS:PHP编译安装过程
          https://www.cnblogs.com/ksy-c/p/12785238.html


        第四个历程:启动PHP程序服务
          systemctl start php-fpm
          确认服务是否启动:
            1)查看服务进程信息 ps -ef|grep php
            2)查看服务端口信息 netstat -lntup

              TCP:传输控制协议 面向连接网络协议(可以保证数据传输可靠性) 用途:HTTP访问网站页面 FTP 邮件服务
              UDP:用户报文协议 无连接网络协议 (可以保证数据传输效率) 用途:DNS解析 视频通讯 语言通讯
                  -l 列表显示端口和服务进程信息
                  -n 以数字方式显示信息
                  -t 显示tcp信息的端口和服务进程信息
                  -u 显示udp信息的端口和服务进程信息
                  -p 显示服务进程信息

      MySQL部署安装:

        简单方便 -- mariadb   Mysql==mariadb

        第一个历程:安装程序软件
          yum install -y mariadb mariadb-server

        第二个历程启动数据库程序并简单配置
          systemctl start mariadb

          mysqladmin -uroot password "oldboy123" --- 设置密码信息
          drop database test; --- 删除无用数据库
          delete from user where user=""; --- 删除无用数据库用户信息

      需要将LNMP架构进行串联
        nginx 和 php进行串联
        第一个历程:让nginx和php建立关系
          server {
            listen 80 default_server;
            server_name bbs.oldboy.com;
            root /html/bbs;
            index index.php index.html;
            location ~ .php$ { --- 匹配客户端访问php动态资源信息
              fastcgi_pass 127.0.0.1:9000; --- 将动态资源请求抛送给后端PHP程序
              root /html/bbs; --- 告知PHP程序,默认资源信息保存目录
              fastcgi_index index.php; --- 在PHP收到Nginx发送消息后,没有特殊指定动态资源文件,默认处理index.php首页文件
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; --- 可以精准告知PHP需要处理文件路径信息
              include fastcgi_params;
            }
          }

        第二个历程:进行测试验证
          在站点目录中,创建php动态代码文件
          502 表示前段服务正常 nginx 但是后端服务不能接受前端服务请求

      php 和 数据库进行串联

              -- 利用php代码进行串联
        <?php
          $servername = "localhost";
          $username = "root";
          $password = "oldboy123";
          //$link_id=mysql_connect('主机名','用户','密码');
          //mysql -u用户 -p密码 -h 主机
          $conn = mysqli_connect($servername, $username, $password);
          if ($conn) {
            echo "mysql successful by root ! ";
          }else{
            die("Connection failed: " . mysqli_connect_error());
          }
        ?>

    企业动态资源发布过程
      第一个历程:获取网站动态资源代码 上传解压
    省略

      第二个历程:进行网站初始化过程 (开源)
        环境检查过程 需求进行指定目录授权 chown
        创建库和用户过程 创库sql 授权sql

      第三个历程:测试访问看看
        测试能不能发帖

    server {
            listen       80;
            server_name  bbs.oldboy.com;
            root         /html/bbs/upload;
        index        index.php;
        location ~.*.php$ {
            fastcgi_pass 127.0.0.1:9000;
            root /html/bbs/upload;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }

     

  • 相关阅读:
    vue.js 源代码学习笔记 ----- 工具方法 option
    日期字符串格式转换
    MySQL数据库的知识总结
    Mybatis 中#{}和${}的区别
    MySQL数据库 常用命令
    MySQL -进阶
    JQuery杂项方法
    ASP.NET MVC 扩展自定义视图引擎支持多模板&动态换肤skins机制
    C#各种导入Excel文件的数据的方法总结
    C#基础随手笔记之基础操作优化
  • 原文地址:https://www.cnblogs.com/sulongniao/p/13749738.html
Copyright © 2020-2023  润新知