lnmp架构介绍组成部分:

lnmp架构有很多架构,下面简单介绍几种
早期: linux nginx(实现处理静态访问 实现负载均衡) mysql(存储用户数据信息)PHP(处理动态请求 PHP程序)
普遍:linux nginx mysql Tomcat
新型: linux nginx mysql python

lnmp架构原理过程
架构原理:
1)用户向网站发起访问
静态访问
动态访问
2)nginx程序接受用户HTTP请求信息
静态请求信息 由nginx程序直接作出响应
动态请求信息 由nginx借助fastcgi_pass指令将请求通过fastcgi接口发送给PHP程序进行处理
3)PHP程序接受nginx发送动态请求信息
本身可以直接处理 通过解析器直接处理 转换成HTML代码信息返回给nginx程序
需要调用数据库处理 通过解析器访问数据库 数据库会进行处理后返回给PHP结果
4)nginx接受PHP返回的信息
将结果信息返回给用户

分析lnmp架构问题:
1)nginx程序是否出现问题
2)PHP服务程序是否出现问题
3)mariadb服务程序是否出现问题
lnmp部署过程
linux部分
关闭防火墙以及selinux 确保./tmp目录权限是1777
最好将yum源换为阿里源
nginx部分
第一个历程:查看软件是否安装

rpm -qa nginx gcc gcc-c++ autoconf yum-utils

第二个历程:安装软件程序依赖

yum install gcc gcc-c++ autoconf yum-utils

第三个历程:配置nginx官方仓库源文件
提示:最好将本地配置好的阿里源文件给移动而不是删除

vim /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

第四个历程:启动服务进程

systemctl start nginx      # 启动Nginx程序进程
systemctl enable nginx
systemctl stop nginx  # 停止nginx程序进程
systemctl reload nginx  # 平滑重启nginx程序进程

第五个历程:检查服务进程

ps -ef | grep nginx   # 检查服务进程是否存在
netstat -lntup | grep nginx   # 检查服务进程端口信息

数据库部分
提示 将上一步操作的nginx官方yum源文件移走,将阿里源文件移动回来
第一个历程:下载数据库软件

yum install mariadb-server mariadb -y

第二个历程:启动数据库程序服务进程

systemctl start mariadb.service 
systemctl enable mariadb.service

PHP部分

第一个历程:解决yum安装软件冲突问题

yum remove php-mysql php php-fpm php-common

第二个历程:准备yum安装软件扩展源信息

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

提示 此命令操作过程很容易受到网络波动的影响导致下载失败,并且使用别人下载好的yum源文件是不能成功的,使用本地yum源方式也不可以实现。
如果受到网络波动影响不能正常下载:
1)不同时间段多试几次
2)将https改为http再进行测试(我是这么成功的)
3)修改dns地址 233.5.5.5 114.114.114.114 多换几个
第三个历程:利用yum安装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

第四个历程:修改PHP程序所使用的用户信息

vim /etc/php-fpm.d/www.conf

user = nginx
group = nginx

第五个历程:启动PHP服务程序

systemctl  start  php-fpm.service

提示: PHP端口为9000

检查信息

ps -ef|grep php  # 检查启动进程信息
netstat -lntup|grep php   # 检查启动端口信息

lnmp部署配置
nginx +PHP程序进行串联
编写nginx配置文件

server {
    listen       80;
    server_name  blog.oldboy.com;
    root         /html/blog;    --- 让php程序可以知道当哪个路径中获取代码信息  
    index        index.html index.htm;    --- 默认php程序识别首页文件  此时还没改
    location ~ \.php$ {
     client_max_body_size 100m;  将nginx传输文件的大小改为100M ;默认是2M
           root /www;     
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME(变量信息) $document_root$fastcgi_script_name(调用内置变量);
		   $document_root        --- 识别访问网站uri资源路径信息
		   $fastcgi_script_name  --- 识别访问网站uri资源代码信息
		   
		   http://www.oldboy.com  /sa/test.php  
		                          $document_root+$fastcgi_script_name  = SCRIPT_FILENAME  --> PHP
           fastcgi_pass  127.0.0.1:9000;  --- 将动态请求发送给本地主机9000端口 
           include fastcgi_params;   --- 让nginx程序可以识别一些内置变量
     }
 }

正式版配置文件

[root@nfs01 etc]# cat /etc/nginx/conf.d/blog.conf

server {
    listen       80;
    server_name  blog.oldboy.com;
    root         /html/blog/;
    index        index.php  ;
    location ~ \.php$ {
    client_max_body_size 100m;
           root /html/blog/; 
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           fastcgi_pass  127.0.0.1:9000;
           include fastcgi_params;
     }
 }

编写PHP首页文件进行测试
cd /html/blog/
vim test.php

<?php phpinfo(); ?>

PHP+mariadb建立关系(开发人员)
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 !\n";
      }else{
          die("Connection failed: " . mysqli_connect_error());
      }
 ?>

补充:数据库简单配置
1)修改数据库密码信息

mysqladmin -uroot password "oldboy123"
 mysql -uroot -poldboy123 -hlocalhost

2)创建数据库信息

create database 数据库名称;

3)查看数据库信息

show databases;

4)删除数据库信息

drop database 数据库名称;

5)创建数据库管理用户root

grant all(所有权限) on blog.*  to 'blog'@'允许连接数据库白名单信息'  identified by '密码信息';

6)查看数据库是否连接成功

select user,host from mysql.user;

lnmp实现动态网站
第一个历程:获取需要的网站代码信息
blog动态网站代码:开源代码

unzip wordpress-5.3-zh_CN.zip
mv wordpress/* /html/blog/  放入站点目录下

第二个历程:修改站点目录权限信息

chown -R  nginx.nginx  /html/blog

第三个历程:进行网站搭建初始化配置(生成连接数据库代码信息)

http://blog.oldboy.com/index.php 
http://blog.oldboy.com/wp-admin/setup-config.php	 --- 网站初始化页面

提示:根据页面提示操作,并且检查是否有那个数据库信息

create database blog;  --- 创建数据库信息 
	grant  all  on blog.* to 'blog'@'localhost' identified by 'oldboy123';

第四个历程:直接访问网页
提示:访问页面时注意是不是默认识别index.html为首页文件

测试

访问网页,正常应该是图一所示

LNMP架构各个服务的优点 lnmp的工作原理_PHP


图一我遇到的问题就是图二所示

LNMP架构各个服务的优点 lnmp的工作原理_LNMP架构各个服务的优点_02


图二

还没找到为什么。但是应该就是路径问题以及nginx配置文件中路径问题所导致的。