1、LNMP 环境搭建作者:tao12345666333(百度诔罨租磊ID)博客:http://t.cn/z8N2hSp贴吧:centos 吧时间:2013.9.29一、写在前面 本文的主要目的是在centos上面搭建当今性能相对较好的一套服务器环境LNMP。即:Linux + Nginx + MySQL + Php 。由于 Nginx 比Apache更轻巧一些,而且在nginx的官方网站上面对于nginx处理的多并发量是100000。所以,在现在网站会面临这种大并发量的时候,使用Nginx 来作为服务器程序确实是一个不错的选择,不过如果使用LAMP环境的话,对于php的执行过程是使用mod-php这样的一个apache 模块,但使用LNMP的话,是使用一个叫做php-fpm 的一个单独的进程来完成处理,而且,Nginx 本身也是一个独立的进程,所以对资源占用就比LAMP环境下多了一个进程。至于对于LAMP和LNMP 环境的选择就见仁见智吧。 本文的编译安装环境是在使用centos6.3 DVD 安装的minimal Desktop 下的,只是安装了默认的软件包,所以,在编译过程中需要安装其他需要的软件或者库文件,本次安装的都是在此时官方提供的stable版本,适合现在的情况。为了方便截图和写文章的方便本次操作是在win 7 + VM 环境中的。在看本文时,如果有任何问题可以到百度centos吧提问。谢谢大家支持。
2、在进行编译安装的过程前,因为这个是一个新安装的系统,所以为了不必要的麻烦,我们需要安装开发工具包,执行如下的命令# 烤恤鹇灭yumgroupinstall "DevelopmentTools"–y进行开发工具的安装,确保编译安装的过程可以顺利的执行还有要确认一下本机是否有安装过apache 服务,使用# yum list |grep httpd或者是使用如下代码:# rpm –qa |grep http*来确认一下在本机上面是否安装了apache服务,因为同样都是web服务,为了避免之后可能出现的问题,如果在本机上面之前有安装过apache服务或者相关服务,请提前移除。在本次的编译安装过程中会使用到很多需要支持的库文件,可以在安装的过程中,等到程序报错,再进行安装,或者是提前安装完成,避免在安装过程中出现的各种问题,其次在编译安装的过程中会有很多的依赖关系和编译参数需要进行设置,所以最好是提前配置好本地的yum 源或者是确保网络正常,在对php进行编译安装的过程中需要用到很多的库文件支持,但是在centos的自带源中是没有提供的,需要 repoforge 的源的支持,可以在 http://repoforge.com官网上下载yum 源的包,安装后就可以有repoforge源的支持了。下面先演示如何得到repoforge 源的支持:首先登陆到repoforge的官网,在usage 目录下面找到自己对应的版本的yum源的包,下载后,执行# rpm –ivh repoforgeXXXX.rpm安装过程结束后,就获得了repoforge源的支持了,可以到/etc/yum.repos.d/目录下进行查看
3、编译安装Nginx 首先上Nginx 的官网http://nginx.org 右侧的download页面下载所需要的Nginx的源码包,注意选择linux下的stable版本,如下图:下载完成后,切换到下载目录,如图:
4、执行了./configure之后就会进行一系列的检查,以便于之后的编译过程(编译过程的原理自行搜索进行学习)然后的操作如下图,执行make 会生成makefile 用于引导之后的安装过程,操作如下图:可能会报错,那就按照提示安装即可
5、执行了./configure之后就会进行一系列的检查,以便于之后的编译过程(编译过程的原理自行搜索进行学习)然后的操作如下图,执行make 会生成makefile 用于引导之后的安装过程,操作如下图:可能会报错,那就按照提示安装即可执行过了 #make install操作就安装完成了,Nginx的默认安装路径是在/usr/local/nginx目录下的接下来我们启动Nginx 服务,进入到/usr/local/nginx/sbin目录,执行./nginx就可以启动Nginx服务了。接下来,我们使用默认设置可以直接在浏览器中访问localhost ,看到如下的界面就说明我们已经安装而且启动成功了Nginx 了,当然我安装完成后修改了Nginx的默认监听端口,默认端口是8000,我修改成了80 ,所以默认访问的话,可以输入 localhost:8000 进行访问,即可。至此,我们的Nginx 已经编译安装完成,我们接下来开始对php进行编译安装!
6、编译安装php 首先还是同样的上 http://php.net 官网下载php的源码包,然后进入下载目录,进行解压,接下来我们仍然可以看见有 configure 文件,但是我们不直接执行编译过程,这里涉及到一些编译参数的问题,我来进行一些说明:(1)在执行./configure时是可以使用 – 进行参数连接设置的,比如安装位置、还有支持的功能、不支持的功能,以及对其他服务的关联设置等等都是在编译的过程就可以直接自定义的,在上一篇的LAMP 环境安装的文章中,我们对php进行测试的页面,里面显示了php的编译方式那些参数已经支持功能的 这里我先上一张php安装完成之后,phpinfo的界面截图 :这里就是那部分参数我贴出来,然后进行说明:
7、我们旅邯佤践进入到php的安装目录/usr/local/php下,在sbin目录下面有一个可执行文件php-fpm但是这个时候我们不能直接执行,因为我们还没有配置文件,在/usr/local/php/etc/ 有一个php-fpm.conf.default文件,这个其实就是php 本身提供的一个配置文件的模板,只要改名成为php-fpm.conf 即可,此外我们还没有php的配置文件php.ini。这个文件要到php 的源码包文件中的目录中找,有一个php.int. production 文件,这个文件其实就是php官方提供的默认的php的配置文件,只要复制到/usr/local/php/etc/改名为php.ini 即可。具体代码操作是:cp php.ini.production /usr/local/php/etc/php.ini这样php 也就成功编译完成!3、关联nginx 和 php-fpm这个时候我们要开始修改nginx的配置文件了,进行nginx和php-fpm的关联,这个文件的默认位置是/usr/local/nginx/conf/nginx.conf其实在nginx的默认配置文件中就已经写入了对php-fpm的支持了,只不过是注释掉了,我们可以删除掉那部分注释,并且修改部分参数即可完成配置。如下图:修改用红色框选的部分为 $符合前面是网站根目录。保存之后我们就已经关联结束。接下来是测试阶段。4、测试是否安装成功在/usr/local/nginx/html/创建一个php 页面进行测试。如下图:输入php代码,调用phpinfo()方法进行测试。下面的访问我是在windows下访问的,有些朋友可能访问会失败,这个还是我之前在LAMP环境安装中提到过的iptables和selinux的访问控制。只要执行#iptables –F 和 # setenforce 0 即可清除iptables表和设置selinux为可访问。同时注意下面的关于mysql的信息,因为在编译的时候我就已经在编译参数里面设置过了mysql的配置信息,包括mysql的安装位置和服务之类的。所以这个时候mysql应该也是会关联成功的
8、文章信息授权信息:本文采用署名-非商业性使用-相同方式共享2.5 中国大陆进行许可在传播过程中您可以复制、发行、展览、表演、放映、广播或通过信息网络传播本作品创作演绎作品 且必须署名—您必须按照作者或者许可人指定的方式对作品进行署名。非商业性使用—您不得将本作品用于商业目的。相同方式共享—如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。