没有合适的资源?快使用搜索试试~ 我知道了~
企业级LNMP环境应用实践
资源推荐
资源详情
资源评论
6.1 LNMP 应用环境
6.1.1 LNMP 介绍
大约在 2010 年以前,互联网公司最常用的经典 Web 服务环境组合就是LAMP (即 Linux、Apache、
MySQL、PHP),近几年随着 Nginx Web 服务的逐渐流行,又出现了 新的 Web 服务环境组合——LNMP
或 LEMP,其中 LNMP 为 Linux、Nginx、MySQL、 PHP 等首字母的缩写,而 LEMP 中的 E 则表示
Nginx,它取自 Nginx 名字的发音 (engine x)
o
现在,LNMP 已经逐渐成为国内大中型互联网公司网站的
主流组合环境,因 此,我们必须熟练掌握 LNMP 环境的搭建、优化及维护方法。
6.1.2 LNMP 组合工作流程
在深入学习 LNMP 组合之前,有必要先来了解一下 LNMP 环境组合的基本原理, 也就是它们之
间到底是怎样互相调度的?
当 LNMP 组合工作时,首先是用户通过浏览器输入域名请求 Nginx Web 服务,如 果请求是静态
资源,则由 Nginx 解析返回给用户;如果是动态请求(.php 结尾),那么 Nginx 就会把它通过 FastCGI
接口(生产常用方法)发送给 PHP 引擎服务(FastCGI 进程 php-fpm)进行解析,如果这个动态请求要
读取数据库数据,那么 PHP 就会继续向后请 求 MySQL 数据库,以读取需要的数据,并最终通过 Nginx
服务把获取的数据返回给用 户,这就是 LNMP 环境的基本请求顺序流程(如图 6-1 和图 6-2 所示)。
这个请求流程是 企业使用 LNMP 环境的常用流程。
Linux 操作系统
图 6-1 LNMP 组合调用关系逻辑图
234 跟老男孩学 Linux 运维:Web 集群实战
图 6-2 LNMP 组合 FastCGI 方式调用 PHP、MySQL 的关系逻辑图
6.2 LNMP 之 MySQL 数据库
6.2.1 MySQL 数据库介绍
MySQL 是互联网领域里非常重要的、深受广大用户欢迎的一款开源关系型数据库 软件,由瑞典
MySQL AB 公司开发与维护。2006 年,MySQL AB 公司被 SUN 公司收 购,2008 年,SUN 公司又被传
统数据数据库领域大佬甲骨文(Oracle)公司收购。因此, MySQL 数据库软件目前属于 Oracle 公司,但仍
是开源的,Oracle 公司收购 MySQL 的 战略意图显而易见,其自身的 Oracle 数据库继续服务于传统大
中型企业,而利用收购的 MySQL 抢占互联网领域数据库份额,完成其战略布局。
MySQL 是一种关系型数据库管理软件,关系型数据库的特点是将数据保存在不同 的二维表中,
并且将这些表放入不同的数据库中,而不是把所有数据统一放在一个大仓 库里,这样的设计增加了
MySQL 的读取速度,灵活性和可管理性也得到了很大提高。 访问及管理 MySQL 数据库的最常用标准
化语言为 SQL 结构化查询语言。
6.2.2 为什么选择 MySQL 数据库
目前,绝大多数使用 Linux 操作系统的互联网企业都使用 MySQL 作为后端的数据 库,从大型的
BAT 门户,到电商门户平台、分类门户平台等无一例外。那么,MySQL 数据库到底有哪些优势和特
点,让大家毫不犹豫地选择它呢?
原因可能有以下几点:
口性能卓越、服务稳定,很少出现异常宕机。
口开放源代码且无版权制约,自主性强、使用成本低。
口历史悠久,社区及用户非常活跃,遇到问题,可以很快获取到帮助。
口软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
口支持多种操作系统,提供多种 API 接口,支持多种开发语言,特别是对流行的 PHP 语言无缝
支持。
口品牌口碑效应,使得企业无需考虑就直接用之。
更多的 MySQL 介绍见后面的章节。
6.2.3 安装 MySQL 数据库
1 .安装概览
MySQL 有几种不同的产品线,且每种产品线又有很多不同的版本,这里选择当前 企业使用最广
的社区版 MySQL 5.5 系列作为 LNMP 的组合环境数据库平台。
MySQL 的安装方法也有很多,常见的方法见表 6.1。
第 6 章 企业级 LNMP 环境应用实践 2。7
表 6-1 企业场景 MySQL 安装方式一览
序号
MySQL 安装方式
特点说明
1
yum/rpm 包安装
特点是简单、速度快,但是没法定制安装,入门新手常用这种方式
2
二进制安装
解压软件,简单配置后就可以使用,不用安装,速度较快,专业 DBA 喜欢这种方
式。软件名如:mysqI-5.532-linux2.6-x86 64.tar.gz
3
源码编译安装
特点是可以定制安装巳 但是安装时间长,例如:字符集安装路径,等 等。软件名
如:mysql-5.532.tar.gz
4
源码软件结合 yum/rpm
安装
把源码软件制作成符合要求的 rpm,放到 yum 仓库里,然后通过 yum 来安装。结
合了上面 1 和 3 的优点,即安装快速,可任意定制参数,但是 安装者也需要具备更
深能力。本书结尾有 rpm 定制包的内容介绍
安装 MySQL 的注意事项如下:
1) 建议和前面章节介绍的 Nginx 服务安装在同一台机器上。
2) 重视操作过程的报错输出,有错误要解决掉再继续,不能忽略掉编译中的错误。
㊀ 提示:MySQL 5.5 产品系列和早期的 MySQL 5.0/5.1 系列属于不同的产品线,因此,安装方式不同, 后文有讲解。
第 6 章 企业级 LNMP 环境应用实践 208
2.安装步骤介绍
1 )创建 mysql 用户的账号
首先以 root 身份登录到 Linux 系统中,然后执行如下命令创建 mysql 组及用户 账号:
[root@www ~]# groupadd mysql
[root@www ~]# useradd -s /sbin/nologin -g mysql -M mysql
useradd 命令的参数简要说明如下:
□ -s /sbin/nologin 表示禁止该用户登录,只需要角色存在即可,加强安全。
□ -g mysql 指定 mysql 用户属于 mysql 组。
□.M 表示不创建用户家目录,因为没有需要。
□ groupadd 和 useradd 这两条命令也可以用 useradd -s /sbin/nologin -M mysql 替代。 下面检查刚
刚创建的 mysql 用户和组,命令如下:
[root@www ~]# tail -1 /etc/passwd
mysql:x:501:501::/home/mysql:/sbin/nologin
[root@www ~]# id mysql
uid=501(mysql) gid=501(mysql) M =501(mysql)
检查输出,可以看到 mysql 用户和组已经成功创建。
现在建立存放所有安装软件的固定目录,命令如下。老男孩喜欢用普通用户家目 录,如果已经
有了直接进入即可。
[root@www ~]# mkdir -p /home/oldboy/tools
(root@www # cd /home/oldboy/tools/
2 )获取 MySQL 软件包
MySQL 软件包的下载地址为:http://mysql.ntu.edu.tw/Downloads/,如果地址已变 更无法下载,可以
去官方下载,或者通过老男孩的云空间下载。
读者可以通过 ftp 或 rz 命令从本地把已经下载好的 MySQL 软件包上传到 Linux 系 统中,或者找
到下载的网址直接使用 wget 命令下载。
本例以 rz 命令从本地安装来演示部署过程。执行时如提示无 rz 命令,可先执行 yum install Irzsz -y
安装之。执行结果如下:
[root@www tools]# cd /home/oldboy/tools/
[rootSwww tools]# rz
rz waiting to receive.
开始 zmodem 传输。按 Ctrl+C 取消
正在传输 mysql-5.5.32-linux2.6~x86_64 . tar. gz ...
100% 182346 KB 5525 KB/s 00:00:11 0 错误
[rootQwww tools]# Is -sh mysql-5.5.32-linux2.6-x86_64.tar.gz
179M mysql-5.5.32-linux2.6-x86_64.tar.gz
第 6 章 企业级 LNMP 环境应用实践 209
© 提示:本例以 MySQL-进制的方式来讲解,后面章节会使用编译方式指导大家安 装。在生产场景中,
两种方法都是可以用的,其应用场景一般没什么太大差 另恥不同之处在于,二进制的安
装包较大,名字和源码包也有些区别。
MySQL 二进制安装包和源码包名称见表 6-2o
表 6・2 MySQL 二进制和源码包
MySQL
软件
软件名
MySQL 二进制安装包
mysql-5.5.32-linux2.6-x86 64.tar.gz
MySQL 源码安装包
mysql-5.5.3 2. tar. gz
3)采用二进制方式安装 MySQL
(1 )解压并移动 MySQL 二进制软件包到指定的安装路径,命令如下:
当安装 LNMP 一体化环境时,MySQL 数据库要装在 Nginx 所在的机器上。如果 MySQL 和 Nginx
不在一台机器上,那么,Nginx 服务器上的 MySQL 数据库软件包只要 解压移动到/application 目录,
改名为 mysql 就可以了,不需要进行后面的初始化配置。
在非一体的 LNMP 环境(即 Nginx 和 MySQL 不在一台机器上),编译 PHP 环境时, 也是需要
MySQL 数据库环境的,但是高版本的 PHP,例如 5.3 版本以上,内置了 PHP 需 要的 MySQL 程序,因
此,对于此类版本就不需要在 Nginx 服务器上安装 MySQL 软件了, 只需要在编译 PHP 时指定相关参
数即可。这个 PHP 的编译参数为--with-mysql=mysqlnd, 表示 PHP 程序在编译时会调用内置的 MySQL
的库,详细说明见后文。
[root@www
tools]#
[root@www
[root@www
tools]#
tools]#
tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz # <==解压
mkdir -p /application/ # <==创建安装目录,如果有就不用创建了
mv mysql-5.5.32-linux2.6-x86_64 /application/mysql~5.5.32
# <==移动并改名目录
(2)创建软链接,生成去掉版本号的访问路径并查看,命令如下:
[root@www tools]# In -s
(toot@www tools]# Is -1 total 8
/application/mysql-5.5.32/ /application/mysql
#<==设置软链接
/application/ # <==查看配置后的结果
Irwxrwxrwx
1 root root
26 Apr 22 15:32 mysql -> /application/mysql-5.5.32/
#<== MySQL 软链接
drwxr-xr-x
13 root root 4096 Apr
22
15:32 mysql-5.5.32
# <== MySQL 安装路径
Irwxrwxrwx 1 root root 24 Apr
drwxr-xr-x 11 root root 4096 Apr 提示:二进制安
装包,仅需要解压就可以了, 等过程
3 12:30 nginx -> /application/nginx-1.6.2
# <==和 Nginx 一台机器
6 15:34 nginx-1.6.2
不需要执行 cmake/ configure,make, make install
剩余35页未读,继续阅读
资源评论
蚁库
- 粉丝: 28
- 资源: 99
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功