一、知识剖析
LNMP架构介绍
LNMP = Linux+Nginx+Mysql+PHP
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx中的PHP是以fastcgi的方式结合Nginx的,可以理解为Nginx代理了PHP的fastcgi。
LNMP和LAMP唯一不同是指提供web服务的是Nginx,
在Apache中,PHP是作为一个模块存在的。而在Nginx中,PHP是作为一个独立服务存在的,这个服务叫做php-fpm。
Nginx直接处理静态请求,动态请求会转发给php-fpm.
LNMP的工作原理
首先,浏览器发送http request请求到服务器(Nginx)
服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序)
PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。
PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM
PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx
服务器再通过Http response的形式传送给浏览器。
浏览器再进行解析与渲染然后进行呈现。
二、MYSQL数据库的源码编译
源码编译
得到mysql数据库的源码包,并进行解压
[root@server1 ~]# tar zxf mysql-boost-5.7.17.tar.gz
创建一个目录(用于将之后编译的的MYSQL,PHP,nginx都放在一起)
[root@server1 ~]# mkdir -p /usr/local/lnmp
安装源码编译工具cmake(支持编译C++语言)
cmake跨平台工具是用来预编译mysql源码的,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等
[root@server1 ~]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y
创建预编译环境,可以定制即加上自己所需的安装条件(比如安装位置等等)
[root@server1 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \ 指定mysql的安装位置
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \ 数据库中数据存放的目录
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \ \链接数据库的SOCKET文件
-DWITH_MYISAM_STORAGE_ENGINE=1 \ 安装MYISAM存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \ 使用UTF-8字符编码
-DDEFAULT_COLLATION=utf8_general_ci \ 校验字符
-DEXTRA_CHARSETS=all \ 安装所有扩展字符集
3.在初次编译后,我们会发现有许多依赖性未安装,一个一个解决依赖项,预编译环境配置完成
[root@server1 mysql-5.7.17]# yum install gcc gcc-c++ -y
再次编译
添加下图划线部分再次编译
[root@server1 mysql-5.7.17]# yum install ncurses-devel -y