lnmp平台
lnmp平台
一.lnmp平台介绍
作用:解析php web应用程序
现在主流的平台都是lnmp平台
与lamp平台的不同之处:
1.在lamp平台php是作为阿帕奇的功能模块的存在。阿帕奇通过CGI机制调用php模块来解析php代码。
在lnmp平台上php是作为一个独立的应用程序,支持以fpm的方式安装部署php,有自己独立的配置文件,有自己独立的进程。比lamp平台使用php来解析php代码效率要高的多。
在nginx和php结合的时候,使用的不是CGI机制,而是使用fastCGI机制来调用php软件,完成php动态页面的解析。
二.部署lnmp平台
1.先安装nginx软件,
如上图所示,如果拿nginx默认的配置文件将nginx.conf文件进行覆盖的话,那么此时的nginx就像刚刚安装好一样。
随后使用nginx -s reload 使得nginx来重新识别配置文件。
2.源码编译安装MySQL5.7
1.创建数据目录,二进制日志目录
2.安装编译器
3.配置MySQL功能参数
4.初始化数据库
如上图所示,这是初始化数据库,在初始化数据库之后,会有一个临时密码。
5.编辑MySQL的配置文件
6.启动MySQL服务
如上图所示,这是复制MySQL的启动脚本,随后我们给这个脚本添加一个可执行权限,
7.导出MySQL命令修改密码
如上图所示,这是配置环境变量确保MySQL命令可以正常使用。
如上图所示,此时MySQL数据库已经安装好。
8.导出MySQL的库文件
原因是我们在源码编译安装php的时候,php会需要MySQL的一些库文件,在Linux操作系统上一些软件在搜索需要的库文件的时候,只会去到指定的目录下去搜索需要的库文件,
如上图所示,此时在Linux操作系统中源码编译安装软件,而软件需要一些库文件的时候,只会去到/lib目录和/lib64目录下去找需要的库文件。
如上图所示,这是我们源码编译安装MySQL的时候,MySQL库文件的存放路径。
而php在搜索MySQL库文件的时候,只会去/lib和/lib64目录下去找。
如上图所示,这是将MySQL默认存放配置文件的路径编写在指定目录下,随后使用ldconfig,来让操作系统重新识别加载配置文件的路径。
如上图所示,此时Linux操作系统加载库文件的路径多了,/usr/local/mysql/lib
9.导出MySQL的头文件
如上图所示,这些都是MySQL的头文件,导出这些头文件的目的是为了后续安装php软件的时候,php需要搜索依赖这些头文件。
如上图所示,在Linux操作系统中默认只会在这个/usr/include目录下去搜索需要的头文件。
如上图所示,具体解决方法就是添加一个软链接,到/usr/include/mysql
三.源码编译安装php软件
1)安装mcrypt加密,mhash认证模块
如上图所示,这5个rpm安装包其实是在给php安装额外的功能模块,
mcrypt用来实现数据加密
mhash用来实现数据验证
这两个包实际是用来加强php数据的安全性的。
2)编译安装php
如上图所示,这是在解压缩php源码包之后,进入到解压目录下,运行configure加上必要的参数。
如上图所示,我们可以看到缺少这个libxml2,所以我们去查找所有包含有xml的rpm包,
随后make编译
最后make install
如上所示,现在Linux操作系统上的php就是以fpm的方式进行安装,就是一个独立的应用程序。
3)编辑php-fpm配置文件
如上图所示,我们去编辑这个配置文件
php配置文件中以分号开头的都是注释。
如上图所示,这是指定php启动的时候,生成的pid存放到指定文件中
而php的错误日志,存放到指定文件中。
所有路径均为相对路径。
如上图所示,日志文件记录错误级别以上的日志,避免磁盘记录的日志信息过多。
如上图所示,这是用来指定php监听的IP地址以及端口
如上图所示,是php默认启动的最大子进程数。
如上图所示,是php默认启动的最大进程数,
4)准备php扩展功能模块的配置文件
如上图所示,这两个目录用来保存给php额外加载功能模块的配置文件。
如上图所示,将来我们再给php添加额外的功能模块的时候,需要修改这个配置文件。
5)复制php启动脚本
如上图所示,这个脚本有这样的参数可以去控制php的启动。
6)启动php
如上图所示,这是启动php后去查看对应的进程以及端口号的过程。
四.配置nginx和php整合,真正形成php平台。
将来使得nginx通过fastcgi机制,来调用php软件去解析php代码,完成对客户端的响应。
如上图所示,这里的fastcgi_param表示的是php页面的存放位置。
如上图所示,测试nginx配置文件语法,以及使得nginx重新识别配置文件。
五.测试lnmp平台是否正常
1)是否可正常显示php页面
如上图所示,如果可以正常显示说明nginx通过fast_cgi机制调用php是正常的。
2)测试php链接数据库
如上图所示,这说明php链接数据库也是正常的,将来可以正常连接数据库进行读写操作。