lamp架构2-lnmp架构的搭建

系列文章目录

lnmp2


lnmp架构图

在这里插入图片描述

一、Mysql的初始化

将启动脚本考入/etc/init.d/下启动(init方式传统启动脚本)
在这里插入图片描述
装了mariadb以后才会有这个文件

在这里插入图片描述
在这里插入图片描述
这个是Mysql的全局变量参数,在这里面配置的参数是全局生效的,并且持久化
修改mariadb的全局变量参数文件并作为Mysql的全局变量参数文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
包含很多Mysql数据库的配置参数

在这里插入图片描述
Mysqld默认会读取的文件

在这里插入图片描述
初始化参数,一个是安全的,一个是非安全的
非安全是没有给管理员加密码,你要进去以后加密码
安全的是随机生成了密码
在这里插入图片描述
为了安全性,让mysql运行在私有用户中,不是直接在root下运行
在这里插入图片描述
运行完以后生成一个随机密码
在这里插入图片描述
在这里插入图片描述
在启动以后,如果有报错,可以去改路径下去查看
在这里插入图片描述
netstat - antlp查看到3306mysql端口已经打开了
在这里插入图片描述
已经启动了
在这里插入图片描述
生产环境推荐使用的安全安装
在这里插入图片描述
将刚才生成随机密码输入,自己设置新的密码后,是否启动密码校验脚本,我选择的是No
启动密码校验脚本的话,会强制你密码的强度,字符串大小写长度等等
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
刷新数据库的认证数据表

在这里插入图片描述
-p后面跟的是密码,进入到了数据库,warning是推荐你不要-p后面直接接入密码,这样别人history就能查到你数据库的密码,不安全使用交互式输入密码

在这里插入图片描述
在这里插入图片描述

二、php的源码编译

rpm 源码 自动化 容器化安装都行
可以直接去php下载php的源码
我直接在我的服务器下获取
在这里插入图片描述

在这里插入图片描述
yum install bzip2 -y
在这里插入图片描述
–with-config-file是php主配置文件的目录,–enable-fpm激活faster cgi的管理器 --with-fpm-user指定Php运行的时候以什么身份运行,用Nginx当初配Nginx时候的用户,这样可以防止处理权限问题了,不指定,默认是httpd,可不加,你后面可以更改主配置文件来随时更改用户
选项越多,编译的模块依赖性就越多
–with-curl curl命令 iconv 有关图形 --with-mhash加密 --with-zlib 网页压缩 --with-openssl网页加密 --enable-mysqlnd直通数据库,5.4以后默认就会激活Mysql的nd驱动,原生的话要外挂mysql这样会外加模块,占用内存,这个是php自己的模块可以减少内存
mysqlli pdo-mysl都是通过调用mysqlnd来完成
soap是动态模块sockets网页的socket --enable-inline php的优化参数
这些参数连安装rpm包的参数都不够

在这里插入图片描述
系统自带的php动态的包,缺什么直接安装

在这里插入图片描述

在这里插入图片描述
系统优先找rpm包,所以源码编译的时候不要安装rpm包
-libsystemddevel没有

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
这个包系统不带,我从阿里云下载的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
make 以后然后make install
在这里插入图片描述

三、更改php的配置

默认配置目录
在这里插入图片描述
将php变量加入用户变量中

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
将default去掉就是它的默认配置文件

在这里插入图片描述
;代表注释,去掉该注释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不用变更文件,看看里面的配置
在这里插入图片描述

监听端口
在这里插入图片描述
进程pm最多5个,默认2个,保持一个空闲
在这里插入图片描述
进入php源码里面拷贝所需配置文件
这是主配置文件

在这里插入图片描述
考入源码包里面的启动脚本

在这里插入图片描述

在这里插入图片描述
有两种启动方式

init方式,起名php-fpm

由于编译的使用了–sytemd使用它可以用systemctl来启动
systemd启动:

在这里插入图片描述
没有特别具体的报错
在这里插入图片描述
在这里插入图片描述
错误点READ-only,百度查看
是因为启动了保护,不让在里面写入东西
在这里插入图片描述在这里插入图片描述
每次修改这里的文件都需要reload一下
在这里插入图片描述

注释掉这个
在这里插入图片描述在这里插入图片描述
启动以后,需要去修改配置文件里面的时区

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
rpm包编译是cgi 无后台程序
源码是fastcgi 有后台程序,所以可以平滑加载
在这里插入图片描述
但是后台会消耗大,所以一般会做反向代理和负载均衡
直接访问9000端口访问php意义不大

三、 做nginx和php-fpm的整合

在这里插入图片描述
当php处理以php结尾的请求
通过fastcgi递交给后台的9000端口
在这里插入图片描述
注释掉是因为这个文件包含了
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
路径要写自己的与官方不一样
在这里插入图片描述在这里插入图片描述
nginx开机自启

在这里插入图片描述在这里插入图片描述查看php自带的内部的信息函数,通常不要让外部主机访问这个Info
在这里插入图片描述

在这里插入图片描述

四、 nginx + php-fpm + mysqld的整合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果数据库不在本地还可以指定远程的主机,用户还有密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述
php代码写的数据库管理工具
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
权限没有问题
在这里插入图片描述
是找不到它的首页
在这里插入图片描述
解决方法
在这里插入图片描述
定义默认如何找首页

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里的用户是数据库的用户,不是操作系统里面的用户
root和刚才进入数据库的密码
在这里插入图片描述
目录中的other进不去

在这里插入图片描述
php和Nginx都是nginx用户针对这个文件是other所以进不去
在这里插入图片描述
在这里插入图片描述

lnmp搭建完成

五、 扩充PHP模块之memcache

在这里插入图片描述
在这里插入图片描述
没有config
在这里插入图片描述
在这里插入图片描述
一定要把php源码路径的安装目录中的Bin放在全局环境中,要不然调用不了phpize
这个指令可以完成预编译环境,其实就是寻找你的动态库
在这里插入图片描述在这里插入图片描述

make make install
该模块安装在这个位置
在这里插入图片描述php的主配置文件,php-fpm是php的管理器
在这里插入图片描述
写一个扩展参数
在这里插入图片描述
平滑加载,重新加载你的主配置文件
在这里插入图片描述
-m是列出php所有模块
在这里插入图片描述
这个是nosql数据库,做数据库的缓冲,完全运行在内存
传统的关系式数据库结构是存储结构化关系数据
在这里插入图片描述
在这里插入图片描述
netstat -antlpe监听端口11211端口
在这里插入图片描述nosql数据库,完全运行在内存,默认启动会占用你本机64M的内存量,也可以修改
将数据写入你内存,读写速度快,特点不能做持久化,一重启数据就没有了,内存没有做持久化
好处快,并且降低数据库的压力
在这里插入图片描述
连接memache

在这里插入图片描述默认会连接你的11211端口,如果你的memache在远程你可以替换掉你的localhost
编写的就是把数据存入你的内存
在这里插入图片描述在这里插入图片描述
数据存入你的内存里面了
在这里插入图片描述
监控页面
在这里插入图片描述

修改认证的admin和密码,不改也行
memache没有集群的概念是分布的,每个结点,对cpu没有要求,对内存有要求,所以不好的电脑多插入几个内存,可以当memache服务器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
远程的话多加几个ip地址就行了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多刷几遍这个
在这里插入图片描述
这个页面监控的是在Memache里面的命中率,就是访问example.php页面的时候就是访问的memache
缓存命中率非常高
在这里插入图片描述
需要php什么模块就官网搜索下载然后搭建起来
下载进入安装的目录
phpize(加载php安装路径和库)
./configure源码编译三部曲

nginx高速缓存

现在(前面)搭建好的是传统的缓存策略
访问的php页面
80->9000(php-fpm管理器)->调用php进程处理->memache 该方式比Php加载到mysql模块,访问mysql(sql)磁盘,Memache(nosql)内存,访问内存快
这个架构也可以,先访问Memache,有无命中,没有这个去Mysql取,取到后再存入memache
php进程处理
在这里插入图片描述
弊端:nginx高并发不能体现出来
因为nginx通过fastcgi这个方式递交给php后端这个方式后,生命周期由后端php来处理**(nginx的反向代理,客户端通过nginx代理到后端的php,而不是直接访问php)**
高并发可以继续处理客户端的请求,但是无法返回客户端需要的数据
由于动态,静态直接nginx给,但是动态的页面则需要到后端的数据库以及memache里面来取
在这里插入图片描述通过压力测试
ab是http的压力测试工具
-c10并发10个,-n5000完成5000次请求
在这里插入图片描述
每s处理2000多个请求
在这里插入图片描述

高效缓存策略

不需要动态语言的处理,直接返回(非常快),生命周期变成nginx可以发挥好Nginx高并发的特性
在这里插入图片描述
需要2个模块,memc(专门连接memache,也可以换成redis,也可以是别的存储,filesystem)和scrache(nginx标准模块,专门处理缓存,可以连接后端不同类型的缓存设施)
默认Nginx没有这些模块,需要到官网下载,进行编译,(麻烦,让nginx支持cookie算法,每次都要编译麻烦)
我使用另一款nginx发行版,openresty
在这里插入图片描述
内部就是Nginx,加了lua脚本
适合敏捷的web开发,可以支持web服务器的快速扩展,如动态更新
都是基于lua,更加灵活
这个已经集成了大量的nginx模块,不用安装

在这里插入图片描述
同样是web服务器同样是80会冲突,所以先停掉Nginx

在这里插入图片描述
有时候服务启动不来,就是端口冲突
所以查看ps ax 和 netstat -antlp
查看有无重复启动服务,和端口冲突没

在这里插入图片描述
在这里插入图片描述
它的安装参数和Nginx一样,所以直接用直接nginx安装参数就行,内部就是Nginx
但是其默认安装路径就是/usr/local/openresty

在这里插入图片描述
在这里插入图片描述
make make install

在这里插入图片描述
修改主配置文件
在这里插入图片描述对照之前Nginx的主配置文件修改
我直接把/usr/local/nginx/conf/nginx.conf文件考入覆盖掉/usr/local/openresty/nginx/conf
启动openresty
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
没有问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
定义后端有多少个memache,多个Memache是来负载均衡的,本机127.0.1,如果想要远程输入ip

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述逻辑,用户访问的url,先到memache看有无该key,没有,通过fastcgi_pass递交给后端的php取,取完后返回值为200就成功,再调用srcache_store 将数据上传到memache,下次直接就可以去memache取
现在是Nginx来控制生命周期了

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
压力测试
在这里插入图片描述
速度变成2w多每s处理数据
在这里插入图片描述
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值