LNMP环境的搭建
之前我们已经对LAMP环境有所了解,今天我们来学习以下LNMP。LNMP是指Linux系统下Nginx+MySQL+PHP这种网站服务器架构,使用nginx来代替apache,Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。作为 Web 服务器,相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx同时也是一个非常优秀的邮件代理服务器,Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。接下来我们就完成LNMP的搭建,以及实现xcache对php的加速,降低服务器的负载。
搭建环境: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文件,并参考它的安装步骤进行安装
![](https://s1.51cto.com/attachment/201304/225742406.png)
![](https://s1.51cto.com/attachment/201304/225804490.png)
这样就就可以mysql进行控制了
![](https://s1.51cto.com/attachment/201304/225820813.png)
为了直接使用mysql进入数据库,去修改/etc/profile文件加入mysql环境配置路径
![](https://s1.51cto.com/attachment/201304/225829677.png)
修改完毕更新profile
[root@station252 mysql]# . /etc/profile
为数据库root用户创建密码
[root@station252 mysql]# mysqladmin -u root -p password '123456'
接下来设置mysql的库文件和头文件来使其他应用能够找到它
在/etc/ld.so.conf.d目录下创建mysql.conf文件并编辑,写上库文件的路径,编辑完后进行更新
![](https://s1.51cto.com/attachment/201304/225845427.png)
![](https://s1.51cto.com/attachment/201304/225854318.png)
给头文件建立软连接
[root@station252 mysql]# ln -s include /usr/include/mysql
Mysql的安装就结束了
安装nginx:
首先去安装libevent和pcre,libevent可以提高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的配置文件,并写上libevent的lib库的路径
![](https://s1.51cto.com/attachment/201304/225905572.png)
为头文件建立软连接使其他应用能正确找到它
[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进行编译安装
![](https://s1.51cto.com/attachment/201304/225917380.png)
Make && make install
为nginx编写一个控制脚本
![](https://s1.51cto.com/attachment/201304/225933299.png)
![](https://s1.51cto.com/attachment/201304/225944667.png)
测试nginx是否安装成功:
![](https://s1.51cto.com/attachment/201304/225955942.png)
安装php:
安装编译php
![](https://s1.51cto.com/attachment/201304/230007240.png)
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-fpm(fastcgi的控制文件)到/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.default到php-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的控制脚本
![](https://s1.51cto.com/attachment/201304/230023172.png)
测试一下nginx和php的连接情况
去编辑nginx的配置文件
[root@station252 ~]# vim /etc/nginx/nginx.conf
![](https://s1.51cto.com/attachment/201304/230219508.png)
![](https://s1.51cto.com/attachment/201304/230158753.png)
配置文件编辑完毕后去web站点的主目录建一个php测试文件并写上简单的测试语句
<?php
phpinfo();
?>
编辑完成后重启nginx和php-fpm服务进行测试
![](https://s1.51cto.com/attachment/201304/230233539.png)
已完成nginx和php的连接
接下来测试与数据库的连接,同样编辑一个简单的测试文件
<?php
$link=mysql_connect('127.0.0.1','root','123456');
if ($link)
echo "ok";
else
echo "failed";
?>
连接成功
![](https://s1.51cto.com/attachment/201304/230247306.png)
现在已经完成nginx、php和mysql的连接
接下来我们对php进行加速这里我们采用xcache
[root@station252 ~]# tar -zxvf xcache-2.0.1.tar.gz -C /usr/local/src/
对于xcache需要我们自己去生成一个configure文件,具体步骤是,执行安装php时的一个phpize工具,如图:
![](https://s1.51cto.com/attachment/201304/230309181.png)
[root@station252 xcache-2.0.1]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
Make && make install
完成后会产生一个xcache.so模块,后边进行xcache和php连接是需要用到
![](https://s1.51cto.com/attachment/201304/230324484.png)
安装编译完成后我们需要把xcache和php结合
安装php时我们创建了一个php5.d的目录用来存放拓展功能的一些文件,我们就把xcache的源代码目录下的xcache.ini文件拷贝过来并编辑
[root@station252 xcache-2.0.1]# cp xcache.ini /etc/php5.d/
把产生模块的完整路径写到第八行,第十和十二行注释掉
![](https://s1.51cto.com/attachment/201304/230335206.png)
重启php
测试xcache是否已经加载到php
修改index.php
<?php
phpinfo();
?>
可以看到xcache已经加载
![](https://s1.51cto.com/attachment/201304/230348547.png)
为实现能对xcache的web管理我们需要把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
会出现下面错误,原因是这是一个管理界面需要去认证才能进入
![](https://s1.51cto.com/attachment/201304/230359869.png)
根据要求接下来我们去生成一个登录账号和密码,通过以下命令为密码产生一个MD5加密的密钥
[root@station252 ~]# echo -n "123456" |md5sum
e10adc3949ba59abbe56e057f20f883e -
把生成的密钥和账户名编辑到/etc/php5.d/xcache.ini文件里
![](https://s1.51cto.com/attachment/201304/230409736.png)
重启php-fpm服务对浏览器进行刷新
![](https://s1.51cto.com/attachment/201304/230421658.png)
输入刚刚创建的用户名和密码
登陆成功可以看到缓冲区和模块等信息
![](https://s1.51cto.com/attachment/201304/230432114.png)
转载于:https://blog.51cto.com/xuet118/1186053