zoukankan      html  css  js  c++  java
  • LNMP

    (1)全都部署在一台 
    (2)全都不是在一台 
    (3)只分离Mysql

    fastcgi和http格式的数据包的区别

    (1)fastcgi:数据包格式非常严谨,因此,PHP解析的速度非常快,但是越是严谨的数据包越大,所以fastcgi数据包要大于http格式的数据包) 
    (2)http:数据包格式很松散,因此解析的速度慢,但是数据包比fastcgi格式的数据包小

    知识点:

     

      • Nginx和PHP之间进行数据传输依靠fastcgi(接口规则;快速接口),发的是fastcgi的数据包
      • 软件的设计架构分为C/S和B/S,作为客户端Client的fastcgi_pass和作为server端的PHP-fpm,因为经常用,所以fastcgi_pass和Nginx合并,而PHP-fpm和PHP功能合并了,当我们装入Nginx就自带fastcgi,装入PHP就自带PHP-fpm。
      • 用户的请求一定是遵循HTTP协议的,因为是通过浏览器过来的
      • nginx和apache其实一样,如果没有PHP支持,那么都处理不了动态请求,它们自身其实都只能处理静态。只是Apache转发动态数据包的速度快,但是只是单个包速度快。apache的并发低
      • 客户机fastcgi-pass向PHP-fpm服务端推送数据包时,推送的不是用户的请求,而是fastcgi格式的数据包(目的是为了加快PHP的解析速度)
      • PHP-fpm监听的是9000端口
      • PHP是怎么找数据库的:是通过开发写的代码来找的
      • 静态网页和动态网页都是有文件实体的,如:静态网页是xxx.html,动态网页是xxx.php。只不过动态网页用cat打开是看不见网页内容的,它都是代码,不是直接的文字。但是动态网页解析以后给用户的是经过数据库读出来的数据
      • 动态网页解析过程 
        动态网页不是直接把网页内容原封不动的给用户看的,而是PHP先把内容读取到内存中,然后网页中的JS部分就去数据库中拿数据,然后再把内容读到内存中(替换掉原来的代码部分),然后打个包再发给用户 
      • PHP就相当于bash是用来解析的
      • fastcgi_pass是通过 127.0.0.1:9000来推送的,代表推送到本地的9000端口。如果是分离式部署就需要修改IP
      • 动态网页实际上是PHP解析的

    部署(全部在一台上)

    一.部署Nginx

    1.先安装支持包 
    yum -y install pcre-devel openssl-devel 
    2.解压编译包到/usr/src 
    tar xf 安装包 -C /usr/src 
    3.创建程序用户(如果是分离式部署,那么Nginx和PHP中都要有网页文件,并且设置的用户都要能访问网页文件) 
    useradd -s /sbin/nologin -M www 
    4.进行编译安装 
    cd /usr/src/nginx 
    ./configure --user=用户名 --group=组 --prefix=指定目录(如:/usr/local/nginx) --with-http_stub_status_module --with-http_ssl_module && make && make install
    修改环境变量(做软连接) 
    ln -s /usr/local/nginx/sbin/* /usr/local/bin/ 
    5.从备份的配置文件中去了#号和空行,重定向到配置文件中,也可以在配置文件中删除错误信息。

    二.部署mysql

    • 为什么在安装PHP前要先安装mysql?那么如果MySQL在其他服务器上怎么办? 
      ------因为PHP在安装是需要现有Mysql的环境,不然PHP编译会出错。
    • mysql的安装方式 
      (1)yum/rpm安装 
      (2)二进制安装(直接解压就可以安装,但是这个安装包特别大) 
      (3)源码编译安装

    1.解压二进制包到/usr/local 
    2.添加程序用户

    useradd -s /sbin/nologin -M mysql

    3.复制它的配置文件到/etc下

    2.png-169.9kB

     

    4.初始化mysql。之前要做个映射(如果主机名在本地没有映射,那么可能出错)

    5.png-125.2kB
    5.启动MySQL 
    6.png-77.5kB
    7.png-44.3kB
    6.给mysql设置软连接 
    ln -s /usr/local/mysql/bin/* /usr/local/bin/ 
    7.给mysql的root设置密码 
    mysqladmin -uroot password'123123'

    三.部署PHP(要先启动mysql和Nxgin)

    1.用yum安装软件包 
    yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel 
    yum -y install freetype-devel libpng-devel gd libcurl-devel libxslt-devel 
    8.png-72.1kB
    9.png-229.4kB
    2.安装yum无法安装的libiconv 
    (1)公网源安装 
    10.png-157.7kB

     

    (2)编译安装 
    11.png-73.2kB
    ./configure --prefix=/usr/local/libiconv && make && make install 
    3.安装libmcrypt库,安装mhash加密数据库,安装mcrvpt加密扩展库 
    (1)公网源安装 
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo 
    12.png-96.1kB
    13.png-84kB
    14.png-89.3kB

    4.安装PHP(fastcgi方式)服务 
    (1)获取PHP软件包 
    ------公网源方式 
    wget http://cn2.php.net/get/php-5.3.28.tar.gz/from/this/mirror 
    16.png-39.5kB
    -------编译安装 
    tar xf php-5.3.28.tar.gz -C /usr/src 
    (2)配置PHP 
    ./configure --prefix=/usr/local/php5.3.28 --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --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-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp
    cd /usr/src/PHP-5.3.28/ 
    19.png-432.6kB
    18.png-101.1kB

      • 在安装PHP时如果报错,看看是不是提示缺少某个安装包,然后用yum安装试试。如果不行就在安装包的后边加上-devel,意思是把跟它有关的所有包都装上

    5.需要作软连接 
    20.png-112.6kB
    21.png-35.8kB

    • 最后还需要:make install

    6.配置PHP引擎配置文件php.ini 
    23.png-278.1kB

    • 生产中有许多功能是关的。测试中有许多功能是开了 
      24.png-373.7kB

    25.png-77.8kB
    7.配置PHP(fastcgi方式)的配置文件php-fpm.conf 
    (1)cd /usr/local/php/etc 
    26.png-47.7kB
    (2)启动php-fpm 
    27.png-18.6kB
    28.png-66.7kB

    • 想要修改,让它不监听本地的 
      (1)修改配置文件 
      29.png-68.9kB
      30.png-280.4kB
      四.nginx配置 
      1.修改nginx配置文件 
      31.png-29kB
      34.png-374.6kB
      2.创建静态网页首页 
      33.png-24kB
      3.重新启动启动ngix 
      35.png-22.6kB
      4.创建测试页

    36.png-64.9kB
    5.创建动态网页首页 
    test_info.php需要创建 
    37.png-31.1kB 
    五.之后在windos映射,并在浏览器中测试(如果成功则表示Nginx传递给PHP没有问题) 
    blog.yunjisuan.com/test_info.php 
    38.png-189.6kB
    六.检测MySQL连接

    在动态网页目录中创建一个test_mysql.php 
    (1)PHP写法 
    40.png-94.6kB
    39.png-125.4kB
    41.png-136.2kB
    42.png-59kB
    (2)用PHP激活(PHP就相当于bash) 
    43.png-97.7kB
    网页访问 
    44.png-45.8kB
    只不过网页访问是:访问的是Nginx转发的是PHP的数据包

     

    wordpress 博客程序的搭建

     

    一.创建一个专用的数据库wordpress。

    2.png-133.9kB

     

    二.创建一个专用的wordpress管理账号

    3.png-84.5kB
    - 刷新mysql数据库,让授权的账号生效

     

    三.修改LNMP的配置文件

    1.vim /usr/local/nginx/conf/nginx.conf 
    4.png-141.3kB

    • 之后重新启动nginx服务 
      /usr/local/nginx/sbin/nginx -s reload 
      2.下载博客 
      wordpress安装包下载地址www.wordpress.org 
      (1)删除html/blog下的所有文件 
      (2)把博客压缩包解压到html/blog下 
      (3)把解压后目录的东西移动到html/blog目录下 
      (4)删除解压后的目录 
      6.png-211.5kB 
      3.给解压后的所有文件和目录授权 
      7.png-34.2kB
      8.png-189.9kB
     

    四.安装blog博客程序

    按照提示进行注册和登陆

    • 第一次开会有点慢,因为PHP没有作优化(这进入的是后台)
    • 如果再次输入域名访问就会到前台

    五.实现wordpress博客程序URL静态化

    1.在博客上新建个文章,打开发现它是动态网页

    2. 
    3.png-49.8kB
    4.png-127.3kB
    3.修改配置文件

    • vim /usr/local/nginx/conf/nginx.conf 
      5.png-159.6kB

    • 重新启动nginx服务

     

    用户浏览器端的图片解析规则

    1.png-158.2kB
    2.png-46.9kB

      • 添加映射,重启nginx服务

      • 把图片的内容重定向到网页文件中相当于给图片文件改了个名字,在浏览器访问是可以看到图片的。 
        但是如果想让内容和图片一起出现,这种方法是不行的 
        3.png-45.3kB

      • 但是怎么让文字内容和图片一起?(需要用到html语言) 
        4.png-29.2kB

      • 为什么一个文件中全是文字,但是它却可以显示出图片

        当图片解析到 
        5.png-49.2kB 
        它是能认识的,它知道这中间是个图片,那么浏览器就会把中间的内容拿出来,单独去发送一个请求去拿图片,如果图片不存在那么就会显示 
        6.png-19.6kB

      • 如果一个网页文件中有图片,浏览器在解析时拿到的是图片的位置,然后再发起请求单独去拿图片。文字时一次性拿过去的

      • 如果用户在一个浏览器中上传一个图片,上传的图片是放在存储中的,刷新一下会立刻出来,那么它是怎么知道上传的图片的位置的? 
        网页目录设计 
        (1)7.png-15.1kB
        (2)当小红上传了一个图片,那么在upload中肯定还有一个小子目录(xiaohong),是为了保存小红上传的东西,那么PHP就把这个位置记录到mysql中,当下次访问时,index.php先检测谁访问(必须登陆才能访问),发现是小红,然后就去mysql中查找含有小红的图片连接,然后放在网页文件控件(就是静态网页中,“”中间的部分,就是图片的位置)中,发给小红,那么浏览器在检查的时候,就会找到图片

      • PHP有两个功能 
        (1)动态网页读 
        (2)负责上传,就是写 
        读可以不挂存储(PHP只需要从mysql中把图片位置找出来,返回给用户,用户浏览器然后再发起图片请求) 
        写必须挂存储
  • 相关阅读:
    AI CV 会议2018
    ubuntu 更改默认亮度
    ubuntu安装latex
    过滤文件代码 python
    ubuntu安装pycharm桌面快捷方式
    Ubuntu 14.04 鼠标消失解决方案
    ffmpeg常用命令
    FFMPEG 在ubuntu下的安装与使用
    pragma once
    chrono--高精度计时
  • 原文地址:https://www.cnblogs.com/zhangtao11/p/9958297.html
Copyright © 2011-2022 走看看