目录

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动态页面的解析。

https://i-blog.csdnimg.cn/direct/289d56d99f0744b2b194a938670bc2b1.png

https://i-blog.csdnimg.cn/direct/f5add19313df4406b1b7aebf170307cb.png

如上图所示,如果拿nginx默认的配置文件将nginx.conf文件进行覆盖的话,那么此时的nginx就像刚刚安装好一样。

随后使用nginx  -s  reload 使得nginx来重新识别配置文件。

https://i-blog.csdnimg.cn/direct/8f6f5648126f4f3aa223b7d0e34936f9.png

https://i-blog.csdnimg.cn/direct/aac96a10cb564ac58e296e5028f5894c.png

https://i-blog.csdnimg.cn/direct/d54391ebb25b49fd8762f3e6641ff751.png

https://i-blog.csdnimg.cn/direct/386c92030cff46c9af5521f40ed38187.png

如上图所示,这是初始化数据库,在初始化数据库之后,会有一个临时密码。

https://i-blog.csdnimg.cn/direct/199adc48b1364d4b9134fe6d36ee1f1a.png

https://i-blog.csdnimg.cn/direct/7ebe1adae6324e0f86b67d70af592cd6.png

如上图所示,这是复制MySQL的启动脚本,随后我们给这个脚本添加一个可执行权限,

https://i-blog.csdnimg.cn/direct/c3fb1f2ed18d43e3a10a24b3494ecd5b.png

如上图所示,这是配置环境变量确保MySQL命令可以正常使用。

https://i-blog.csdnimg.cn/direct/5a12c2114ee1489dbdcabc3f6196b6a0.png

如上图所示,此时MySQL数据库已经安装好。

原因是我们在源码编译安装php的时候,php会需要MySQL的一些库文件,在Linux操作系统上一些软件在搜索需要的库文件的时候,只会去到指定的目录下去搜索需要的库文件,

https://i-blog.csdnimg.cn/direct/96ecfa76e767468880993daf2b4fd99f.png

如上图所示,此时在Linux操作系统中源码编译安装软件,而软件需要一些库文件的时候,只会去到/lib目录和/lib64目录下去找需要的库文件。

https://i-blog.csdnimg.cn/direct/fcc6c0fe0e7b402d81e5bc024a1b9117.png

如上图所示,这是我们源码编译安装MySQL的时候,MySQL库文件的存放路径。

而php在搜索MySQL库文件的时候,只会去/lib和/lib64目录下去找。

https://i-blog.csdnimg.cn/direct/4ad183350c2d4d83915c5d22b121a967.png

https://i-blog.csdnimg.cn/direct/4dba814b19d64a81aba317c15d7c8bc5.png

如上图所示,这是将MySQL默认存放配置文件的路径编写在指定目录下,随后使用ldconfig,来让操作系统重新识别加载配置文件的路径。

https://i-blog.csdnimg.cn/direct/64b061011b29429ebf045e09a5ebc665.png

如上图所示,此时Linux操作系统加载库文件的路径多了,/usr/local/mysql/lib

https://i-blog.csdnimg.cn/direct/45a95cd2b77e4e289b142f06f4d3b606.png

如上图所示,这些都是MySQL的头文件,导出这些头文件的目的是为了后续安装php软件的时候,php需要搜索依赖这些头文件。

https://i-blog.csdnimg.cn/direct/1bb7b49b15854ffca58755d8627bd76b.png

如上图所示,在Linux操作系统中默认只会在这个/usr/include目录下去搜索需要的头文件。

https://i-blog.csdnimg.cn/direct/bc233e5ec7b84f4892ebafdb2304b67a.png

如上图所示,具体解决方法就是添加一个软链接,到/usr/include/mysql

https://i-blog.csdnimg.cn/direct/866cc135cb904f7c87b55cc194c1a0ba.png

如上图所示,这5个rpm安装包其实是在给php安装额外的功能模块,

mcrypt用来实现数据加密

mhash用来实现数据验证

这两个包实际是用来加强php数据的安全性的。

https://i-blog.csdnimg.cn/direct/b48fea438c044cd5965be16ace087d5c.png

https://i-blog.csdnimg.cn/direct/f893009a5d3b4a7193f521d15dcbb9cc.png

如上图所示,这是在解压缩php源码包之后,进入到解压目录下,运行configure加上必要的参数。

https://i-blog.csdnimg.cn/direct/3140b8ea46574d65ab7a574f34b5a9f7.png

如上图所示,我们可以看到缺少这个libxml2,所以我们去查找所有包含有xml的rpm包,

随后make编译

最后make  install

如上所示,现在Linux操作系统上的php就是以fpm的方式进行安装,就是一个独立的应用程序。

https://i-blog.csdnimg.cn/direct/ff9a1b2319244ad7b9990e41e3d95f52.png

https://i-blog.csdnimg.cn/direct/6eb0cbb366e14fb2ade6c22d7fe03940.png

https://i-blog.csdnimg.cn/direct/8aa6527be7244d22a96fdf691dc159f7.png

如上图所示,我们去编辑这个配置文件

php配置文件中以分号开头的都是注释。

https://i-blog.csdnimg.cn/direct/4e4831a1c082474496e4170823be3152.png

如上图所示,这是指定php启动的时候,生成的pid存放到指定文件中

而php的错误日志,存放到指定文件中。

所有路径均为相对路径。

https://i-blog.csdnimg.cn/direct/73c4a4ac6d9143afad1ad8cd1d3ceb98.png

如上图所示,日志文件记录错误级别以上的日志,避免磁盘记录的日志信息过多。

https://i-blog.csdnimg.cn/direct/8aae9e13cdea4f65910334b582f6eb09.png

如上图所示,这是用来指定php监听的IP地址以及端口

https://i-blog.csdnimg.cn/direct/e273a04965534000bbaeb6587bb1722b.png

如上图所示,是php默认启动的最大子进程数。

https://i-blog.csdnimg.cn/direct/bec61fe647a74eef81c511745f369d45.png

如上图所示,是php默认启动的最大进程数,

https://i-blog.csdnimg.cn/direct/4afa4fba21744d3bbd45a34496e26e50.png

https://i-blog.csdnimg.cn/direct/dbccae977f4e480ca236032346df24f5.png

如上图所示,这两个目录用来保存给php额外加载功能模块的配置文件。

https://i-blog.csdnimg.cn/direct/67ffb8be3fea484292022b3fe577b7aa.png

如上图所示,将来我们再给php添加额外的功能模块的时候,需要修改这个配置文件。

https://i-blog.csdnimg.cn/direct/703887db515c4e72b1a2cae8aa1506bd.png

如上图所示,这个脚本有这样的参数可以去控制php的启动。

https://i-blog.csdnimg.cn/direct/224df84f9ef04e2e9d79efaea7e9ac78.png

如上图所示,这是启动php后去查看对应的进程以及端口号的过程。

将来使得nginx通过fastcgi机制,来调用php软件去解析php代码,完成对客户端的响应。

https://i-blog.csdnimg.cn/direct/c25ca46905804c6f87c7b15177ed644b.png

https://i-blog.csdnimg.cn/direct/32f4c4cdb6dd4349819a2a743cab8f90.png

如上图所示,这里的fastcgi_param表示的是php页面的存放位置。

https://i-blog.csdnimg.cn/direct/05e89d98c1b14aeabdb72704b05aeac4.png

如上图所示,测试nginx配置文件语法,以及使得nginx重新识别配置文件。

https://i-blog.csdnimg.cn/direct/481f6eb7588a4a36bad22937065e4399.png

如上图所示,如果可以正常显示说明nginx通过fast_cgi机制调用php是正常的。

https://i-blog.csdnimg.cn/direct/dc62348abf6f41cf869e6ea0ad8e3bee.png

https://i-blog.csdnimg.cn/direct/b4a25a3c8952409da79a600180c74fa1.png

如上图所示,这说明php链接数据库也是正常的,将来可以正常连接数据库进行读写操作。