系统版本: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/目录下
2.配置编译安装
说明:模块的支持需要考虑真实环境,这里只是列举一些
--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创建链接文件
编写Nginx服务脚本
给创建好的服务脚本执行权限,并添加为系统服务
配置nginx支持PHP文件,修改主配置文件
4.启动Nginx,配置防火墙
5.查看nginx测试页
二、编译安装MySQL
准备工作,解决依赖,安装相关软件包并创建MySQL程序用户
1.解包,配置,编译,安装
2.配置MySQL
设置目录及文件的属主和属组
覆盖原配置文件
创建服务启动脚本,并在启动脚本中指定MySQL位置
初始化数据库
设置环境变量
3.启动MySQL,设置防火墙
4.设置mysql管理员密码,测试登录
三、编译安装PHP
准备工作,解决依赖,安装相关软件包
1.添加libmcrypt加密算法库拓展
由于系统默认只在/lib、/lib64、/lib/lib64下找库文件,所以需要将此库路径和MySQL库路径添加到/etc/ld.so.conf中,然后加载库文件,并配置为开启启动
2.编译安装PHP
说明:
--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算法扩展
编译安装
3.安装后调整
创建PHP配置文件
创建php-fpm配置文件及其启动脚本
4.启动php-fpm,如果nginx和php分别部署在两台主机上,要注意修改php-fpm.conf配置文件的监听地址及其注意防火墙
5.编写一个连接数据库的动态php网页,然后使用浏览器访问下看看是否可以连接
到此为止,LNMP环境就搭建好了,生产环境下,一般都是nginx、mysql和php分别部署在不同的主机上,需要注意的是不同主机监听的地址及其对应的防火墙规则