Day-40lnmp架构

lnmp

1.常见的web框架结构

  • lnmp

  • amp

    l=linux;n=nginx;m=mysql;p=php or python

2.lnmp的原理

1)原理

  • 在LNMP组合工作时,首先是用户通过浏览器输入域名请求Nginx Web服务,如果请求是静态资源,则由Nginx解析返回给用户;如果是动态请求(.php结尾),那么Nginx就会把它通过FastCGI接口(生产常用方法)发送给PHP引擎服务(FastCGI进程php-fpm)进行解析,如果这个动态请求要读取数据库数据,那么PHP就会继续向后请求MySQL数据库,以读取需要的数据,并最终通过Nginx服务把获取的数据返回给用户,这就是LNMP环境的基本请求顺序流程。这个请求流程是企业使用LNMP环境的常用流程。

2)CGI

  • CGI的全称为“通用网关接口”(Common Gateway Interface),为HTTP服务器与其他机器上的程序服务通信交流的一种工具,CGI程序须运行在网络服务器上。
  • 缺点:性能差,因为每次HTTP服务器遇到动态程序时都需要重新启动解析器来执行解析,之后结果才会被返回给HTTP服务器

3)fastcgi

  • FastCGI是一个可伸缩的,高速地在HTTP服务器和动态脚本语言间通信的接口(在Linux下,FastCGI接口即为socket,这个socket可以是文件socket,也可以是IP socket)

  • 优点:把动态语言和HTTP服务器分离出来。多数流行的HTTP服务器都支持FastCGI,包括Apache,Nginx和Lighttpd等

  • 特点:

    ​ ①.HTTP服务器和动态脚本语言间通信的接口或工具。

    ​ ②.可把动态语言解析和HTTP服务器分离开。

    ​ Nginx,Apache,Lighttpd,以及多数动态语言都支持FastCGI。

    ​ ③.FastCGI接口方式采用C/S结构,分为客户端(HTTP服务器)和服务器端(动态语言解析服务器)

    ​ ④.PHP动态语言服务器端可以启动多个FastCGI的守护进程(例如php-fpm(fcgi process mangement))

    ​ ⑤.HTTP服务器通过(例如Nginx fastcgi_pass)FastCGI客户端和动态语言FastCGI服务器端通信(例如php-fpm)

3.nginx+php

#1.安装
①.配源
[root@web01 ~]# cat /etc/yum.repos.d/php.repo 
[webtatic-php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
②.安装
[root@web01 ~]# yum install nginx -y
[root@web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common
[root@web01 ~]# yum -y install 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
[root@web01 ~]# yum install mariadb mariadb-server -y
#2.配置
①.配置nginx
[root@web01 ~]# vim /etc/nginx/conf.d/php.conf
server {
    listen 80;
    server_name wangxub.cn
    root /code
    location / {
        index index.php;
    }
    location ~ \.php {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include pastcgi_params;
    }
}
②.配置php页面
[root@web01 ~]# vim /code/info.php

#3.启动
[root@web01 ~]# nginx -t
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl start php-fpm
#4.host劫持;浏览器访问
path = /c/windows/system32/drivers/etc/hosts

4.php+mysql

#1.配置nginx
[root@web01 ~]# vim /etc/nginx/conf.d/kedaoyun.conf
server {
    listen 80;
    server_name wangxub.cn;
    root /youdaoyun ;
    client_max_body_size 20M;
    location / {
        index index.php;
    }
    location ~ \.php  {
        pastcgi_pass 127.0.0.1:9000;
        pastcgi_param SCRIPT_FILENAME $document_root$pastcgi_script_name;
        include pastcgi params;
    }
}
#2.启动MySQL
[root@web01 ~]# systemctl start mariadb
#3.设置MySQL密码
[root@web01 ~]# mysqladmin password 123
#4.配置检测php与MySQL连接脚本
[root@web01 ~]# vim /youdaoyun/mysql.php

#5.测试
[root@web01 ~]# php /youdaoyun/myaql.php

5.lnmp搭建Wordpress

#1.配置nginx
[root@web01 ~]# vim /etc/nginx/conf.d/wordpress.conf
server {
    listen 80;
    server_name wangxub.cn;
    root /youdaoyun ;
    client_max_body_size 20M;
    location / {
        index index.php;
    }
    location ~ \.php  {
        pastcgi_pass 127.0.0.1:9000;
        pastcgi_param SCRIPT_FILENAME $document_root$pastcgi_script_name;
        include pastcgi params;
    }
}
#2.创建配置中的目录
[root@web01 ~]# mkdir /wordpress
#3.上传代码并解压
[root@web01 ~]# rz -E
[root@web01 ~]# tar xf wordpress-5.2.3-zh_CN.tar.gz
#4.解决权限不统一问题
[root@web01 ~]# groupadd -g 666 www
[root@web01 ~]# useradd -u 666 -g 666 www
[root@web01 ~]# chown -R www.www /wordpress
[root@web01 ~]# vim /etc/nginx/nginx.conf
user www;
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
user www;
group www;
#5.创建MySQL用户
[root@web01 ~]# mysql -uroot -p123456
MariaDB [(none)]>create database wordpress;
MariaDB [(none)]> show databases;
#6.重启服务
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl start php-rpm

你可能感兴趣的:(Day-40lnmp架构)