系统版本:CentOS 6.5   软件版本:libmcrypt-2.5.8   mysql-5.6.26   nginx-1.8.0   pcre-8.37  php-5.6.13


LNMP平台组成:Linux、Nginx、MySQl、PHP

Nginx是一款高性能、轻量级的Web服务软件,具有稳定性高、系统资源消耗低、对HTTP并发连接的处理能力高等特点


一、Nginx编译安装

准备工作,解决依赖,安装相关工具包并且创建Nginx程序用户

[root@host1 ~]# yum -y install gcc gcc-c++ autoconf automake

[root@host1 ~]# yum -y install zlib zlib-devel openssl openssl-devel

[root@host1 ~]# useradd nginx -M -s /sbin/nologin


1.解包,将所需软件解压到/usr/src/目录下

wKioL1cmrcnwJ742AAA0y_Wi5NQ853.jpg


2.配置编译安装

wKiom1cmrznC3MM-AACN83gEhbo247.jpg

wKioL1cmtJbygknzAAAYIpEytdA910.jpg

说明:模块的支持需要考虑真实环境,这里只是列举一些

--prefix  ##指定安装位置

--user    ##指定程序用户

--group   ##指定程序组

--with-http_stub_status_module   ##启用支持状态统计模块

--with-http_dav_module    ##启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)默认情况下为关闭,需编译开启

--with-http_addition_module   ##启用支持(作为一个输出过滤器,支持不完全缓冲,分部分相应请求)

--with-http_sub_module  ##启用支持(允许一些其他文本替换Nginx相应中的一些文本)

--with-http_flv_module  ##启用支持(提供支持flv视频文件支持)

--with-http_mp4_module  ##启用支持(提供支持mp4视频文件支持,提供伪流媒体服务端支持)

--with-pcre=/usr/local/src/pcre-8.37   ##需要注意,这里指定的是源码包解压路径,pcre与nginx一起编译安装


3.配置调整

Nginx的相关目录

[root@host1 ~]# ll /usr/local/nginx/
总用量 16
drwxr-xr-x. 2 root root 4096 4月   5 06:46 conf      ##Nginx相关配置文件

drwxr-xr-x. 2 root root 4096 4月   5 06:46 html      ##网站根目录

drwxr-xr-x. 2 root root 4096 4月   5 06:46 logs      ##日志文件

drwxr-xr-x. 2 root root 4096 4月   5 06:46 sbin      ##Nginx启动脚本


为主程序nginx创建链接文件

wKioL1cmvBLBB9moAAAgrN4QMqQ748.jpg


编写Nginx服务脚本

wKioL1cmvEWCtjWEAAAT9oh5KhE588.jpg

wKiom1cmu07B18-BAACsIoFsnPg617.jpg


给创建好的服务脚本执行权限,并添加为系统服务

wKiom1cmu7zj4fQ_AAApAFTetYE540.jpg


配置nginx支持PHP文件,修改主配置文件

wKiom1cmvurCSPx6AAAa99GMQGg496.jpg

wKioL1cpVALDsPl4AAAjzxvh1sc298.jpg

wKioL1cmv72jkhqnAAB0pAnVkgE608.jpg


4.启动Nginx,配置防火墙

wKiom1cmv9CDtVF-AACGGqmrBcs598.jpg


5.查看nginx测试页

wKiom1cmwHuTUsWHAADXQqwGi1M142.jpg


二、编译安装MySQL

准备工作,解决依赖,安装相关软件包并创建MySQL程序用户

wKiom1cmwaPRilg0AAAZCioirhk752.jpgwKiom1cmwdmCu5xhAAAY5XME84Y841.jpg


1.解包,配置,编译,安装

wKioL1cmyDSBUDe4AACyT6UfwN0153.jpg

wKioL1cm0siT-GWCAAAZOWRX7B8299.jpg


2.配置MySQL

设置目录及文件的属主和属组

wKioL1cm1JizMOCeAAAhXI8hXgA808.jpg

覆盖原配置文件

wKiom1cm1AaT6_enAAAzV-uSJrM815.jpg

创建服务启动脚本,并在启动脚本中指定MySQL位置

wKiom1cm2e2BxPPnAABBz4bTT7I253.jpg

wKiom1cm20jw7GwcAAASwQvfi4o725.jpg

wKioL1cm3BqyYzRaAAAcg5BYLJ0307.jpg

初始化数据库

wKioL1cm3KKD8nIdAABM8J1HKIM065.jpg

设置环境变量

wKiom1cm3C-h0tfpAAAt0gBX2VI803.jpg


3.启动MySQL,设置防火墙wKioL1cm3ZThyETVAACSLHux9v8207.jpg


4.设置mysql管理员密码,测试登录

wKioL1cm3wXzeSUbAAAWyxcQXFE311.jpg

wKiom1cm3jOx7vCRAAD1InMM87Q727.jpg


三、编译安装PHP

准备工作,解决依赖,安装相关软件包

wKioL1cnDzrx3NJEAAA1XGxpPIM818.jpg

1.添加libmcrypt加密算法库拓展

wKioL1cm4dHA4_YgAABfTUfnaQk556.jpg

由于系统默认只在/lib、/lib64、/lib/lib64下找库文件,所以需要将此库路径和MySQL库路径添加到/etc/ld.so.conf中,然后加载库文件,并配置为开启启动

wKiom1cnDHWSXZIMAABv_X5KLic397.jpg


2.编译安装PHP

wKioL1cm68ejVcoBAAEy38i4zqM400.jpg

说明:

--with-config-file-path     ##设置 php.ini 的搜索路径。默认为 PREFIX/lib

--with-mysql     ##mysql安装目录,对mysql的支持

--with-mysqli     ##mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。是一个数据库驱动

--with-iconv-dir     ##种字符集间的转换

--with-freetype-dir     ##打开对freetype字体库的支持

--with-jpeg-dir     ##打开对jpeg图片的支持

--with-png-dir     ##打开对png图片的支持

--with-zlib     ##打开zlib库的支持,实现GZIP压缩输出      

--with-libxml-dir=/usr     ##打开libxml2库的支持,libxml是一个用来解析XML文档的函数库

--enable-xml     ##支持xml文档

--disable-rpath     ##关闭额外的运行库文件

--enable-bcmath     ##打开图片大小调整,用到zabbix监控的时候用到了这个模块

--enable-shmop     ##shmop共享内存操作函数,可以与c/c++通讯

--enable-sysvsem     ##加上上面shmop,这样就使得你的PHP系统可以处理相关的IPC函数(活动在内核级别)。

--enable-inline-optimization     ##优化线程

--with-curl     ##打开curl浏览工具的支持  

--with-curlwrappers     ##运用curl工具打开url流 ,新版PHP5.6已弃用

--enable-mbregex     ##支持多字节正则表达式

--enable-fpm     ##CGI方式安装的启动程序,PHP-FPM服务

--enable-mbstring     ##多字节,字符串的支持

--with-gd     ##打开gd库的支持,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

--enable-gd-native-ttf     ##支持TrueType字符串函数库

--with-openssl     ##打开ssl支持

--with-mhash     ##支持mhash算法扩展

--enable-pcntl     ##freeTDS需要用到的,pcntl扩展可以支持php的多线程操作

--enable-sockets     ##打开 sockets 支持

--with-xmlrpc     ##打开xml-rpc的c语言

--enable-zip     ##打开对zip的支持

--enable-soap     ##扩展库通过soap协议实现了客服端与服务器端的数据交互操作

--with-mcrypt     ##mcrypt算法扩展

编译安装

wKioL1cnEBLQ0B1pAAAUe_kfE2M667.jpg


3.安装后调整

创建PHP配置文件

wKioL1cnGoXSNbjqAAAfEUKi7nY290.jpg

创建php-fpm配置文件及其启动脚本

wKioL1cnGrfQFsYDAACFPzZrl8E141.jpg


4.启动php-fpm,如果nginx和php分别部署在两台主机上,要注意修改php-fpm.conf配置文件的监听地址及其注意防火墙

wKiom1cnGs3iigItAACbXm-w9m8427.jpg


5.编写一个连接数据库的动态php网页,然后使用浏览器访问下看看是否可以连接

wKioL1cnH5HjW5cNAAAR4U9-sNg639.jpg

wKiom1cnHsCzvzuzAAA4WEe-y7g556.jpg


wKioL1cnH5PCcw_OAACVW8ekngA050.jpg


到此为止,LNMP环境就搭建好了,生产环境下,一般都是nginx、mysql和php分别部署在不同的主机上,需要注意的是不同主机监听的地址及其对应的防火墙规则