LNMP环境的搭建

之前我们已经对LAMP环境有所了解,今天我们来学习以下LNMPLNMP是指Linux系统下Nginx+MySQL+PHP这种网站服务器架构,使用nginx来代替apacheNginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。作为 Web 服务器,相比 ApacheNginx 使用更少的资源,支持更多的并发连接,体现更高的效率。Nginx 既可以在内部直接支持RailsPHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx同时也是一个非常优秀的邮件代理服务器,Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。接下来我们就完成LNMP的搭建,以及实现xcachephp的加速,降低服务器的负载。

搭建环境:red hat 5.4

所需软件包:

mysql-5.5.15-linux2.6-i686

(前面我们已经了解mysql的源码安装是一个很费时间的事情,所以这里所下载mysql是一个绿色软件包,里面直接是二进制文件供我们直接使用)

libevent-2.0.16-stable(增强nginx的性能)

nginx-1.0.11

php-5.4.13

(之前我们的php使用一个模块(cgi)和apache通讯但效率低,这里php使用一种fastcgi服务进程来和nginx服务器进行连接,fastcgi常驻内存,可以同时启动很多进程,效率较高)

xcache-2.0.1(加速php,降低服务器负载)

安装mysql

Mysql为二进制软件包,直接解压到/usr/local目录下

Tar –zxvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local/

进入解压后的目录为mysql目录建一个软连接方便打开

[root@station252 local]# ln -s mysql-5.5.15-linux2.6-i686 mysql

打开INSTALL-BINARY文件,并参考它的安装步骤进行安装

这样就就可以mysql进行控制了

为了直接使用mysql进入数据库,去修改/etc/profile文件加入mysql环境配置路径

修改完毕更新profile

[root@station252 mysql]# . /etc/profile

为数据库root用户创建密码

[root@station252 mysql]# mysqladmin -u root -p password '123456'

接下来设置mysql的库文件和头文件来使其他应用能够找到它

/etc/ld.so.conf.d目录下创建mysql.conf文件并编辑,写上库文件的路径,编辑完后进行更新

给头文件建立软连接

[root@station252 mysql]# ln -s include /usr/include/mysql

Mysql的安装就结束了

安装nginx

首先去安装libeventpcrelibevent可以提高nginx的性能,pcre是一些兼容的正则表达式库

Pcre使用光盘镜像的rpm包进行安装pcre系统已经自动安装过我们直接安装pcre-devel

Rpm –ivh pcre-devel-6.6-2.el5_1.7.rpm

Libevent用源码安装

[root@station252 ~]# tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/

直接对它进行配置编译安装

./configure

Make && make install

创建libevent的配置文件,并写上libeventlib库的路径

为头文件建立软连接使其他应用能正确找到它

[root@station252 libevent]# ln -s include /usr/include/libevent

创建nginx管理组和用户

[root@station252 nginx-1.0.11]# groupadd -r nginx

[root@station252 nginx-1.0.11]# useradd -s /sbin/nologin -M -r -g  nginx ngin

nginx进行编译安装

Make  &&  make install

nginx编写一个控制脚本

测试nginx是否安装成功:

安装php

安装编译php

Make && make install

建立两个目录php存放配置文件,php5.d存放一些额外的扩展功能的文件

[root@station252 ~]# mkdir /etc/php

[root@station252 ~]# mkdir /etc/php5.d

拷贝php.ini-production /etc/php/php.ini 它实际为Php的配置文件

[root@station252 etc]# cd /usr/local/src/php-5.4.13/         

[root@station252 php-5.4.13]# cp php.ini-production  /etc/php/php.ini

拷贝sapi/fpm/init.d.php-fpmfastcgi的控制文件)到/etc/init.d/php-fpm并给它可执行权限作为一个控制文件

[root@station252 php-5.4.13]# cp sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

[root@station252 php-5.4.13]# chmod  a+x /etc/init.d/php-fpm

进入/usr/local/php/etc/目录下拷贝php-fpm.conf.defaultphp-fpm.conf作为php-fpm的配置文件,可以根据自己的需求来修改配置文件

[root@station252 php-5.4.13]# cd /usr/local/php/etc/

[root@station252 etc]# cp php-fpm.conf.default php-fpm.conf

测试php-fpm的控制脚本

测试一下nginxphp的连接情况

去编辑nginx的配置文件

[root@station252 ~]# vim /etc/nginx/nginx.conf

配置文件编辑完毕后去web站点的主目录建一个php测试文件并写上简单的测试语句

<?php

phpinfo();

?>

编辑完成后重启nginxphp-fpm服务进行测试

已完成nginxphp的连接

接下来测试与数据库的连接,同样编辑一个简单的测试文件

<?php

$link=mysql_connect('127.0.0.1','root','123456');

if ($link)

echo "ok";

else

echo "failed";

?>

连接成功

现在已经完成nginxphpmysql的连接

接下来我们对php进行加速这里我们采用xcache

[root@station252 ~]# tar -zxvf xcache-2.0.1.tar.gz -C /usr/local/src/

对于xcache需要我们自己去生成一个configure文件,具体步骤是,执行安装php时的一个phpize工具,如图:

[root@station252 xcache-2.0.1]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

Make  && make install

完成后会产生一个xcache.so模块,后边进行xcachephp连接是需要用到

安装编译完成后我们需要把xcachephp结合

安装php时我们创建了一个php5.d的目录用来存放拓展功能的一些文件,我们就把xcache的源代码目录下的xcache.ini文件拷贝过来并编辑

[root@station252 xcache-2.0.1]# cp xcache.ini /etc/php5.d/

把产生模块的完整路径写到第八行,第十和十二行注释掉

重启php

测试xcache是否已经加载到php

修改index.php

<?php

phpinfo();

?>

可以看到xcache已经加载

为实现能对xcacheweb管理我们需要把xcache源代码目录下的admin目录拷贝到web站点主目录下,并修改admin权限以及admin目录下的index.php的权限

[root@station252 html]# cp -r /usr/local/src/xcache-2.0.1/admin ./

[root@station252 admin]# chmod a+r index.php

 [root@station252 html]# chmod a+rx admin/

在浏览器中输入http://192.168.129.252/admin

会出现下面错误,原因是这是一个管理界面需要去认证才能进入

根据要求接下来我们去生成一个登录账号和密码,通过以下命令为密码产生一个MD5加密的密钥

[root@station252 ~]# echo -n "123456" |md5sum

e10adc3949ba59abbe56e057f20f883e  -

把生成的密钥和账户名编辑到/etc/php5.d/xcache.ini文件里

重启php-fpm服务对浏览器进行刷新

输入刚刚创建的用户名和密码

登陆成功可以看到缓冲区和模块等信息