LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。成为一个免费、高效、扩展性强的网站服务系统。

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql是一个小型关系型数据库管理系统。

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

特点:

1、Nginx性能稳定、功能丰富、运维简单。

2、处理静态文件速度快且消耗系统资源极少。

应用

作为Web 服务器 作为负载均衡服务器 作为邮件代理服务器

一、安装nginx前准备工作

1、安装pcre主程序和库文件,实现头部和地址重写

yum -y install pcre.i386 pcre-devel.i386

2、解压源代码到/usr/local/src目录下

libevent-2.0.16-stable.tar.gz是一种通知机制的库文件,显著提高网站的性能

tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/

3、检测预编译环境

cd /usr/local/src/libevent-2.0.16-stable/

./configure

4、检测之后,进行编译

make

5、将编译之后形成的四类文件:头文件、库文件、可执行文件、说明文件放到合适的位置

make install

由于libevebt的库文件的位置,所以需要给系统指定libevent的库文件的位置

vim /etc/ld.so.conf.d/libevent.conf

/usr/local/lib

vim /etc/ld.so.conf.d/libevent.conf

手工调动库文件

ldconfig -v

查看系统是不是可以调用libevent的库文件

[root@localhost libevent-2.0.16-stable]# ldconfig -pv |grep libevent

libevent_pthreads-2.0.so.5 (libc6) => /usr/local/lib/libevent_pthreads-2.0.so.5

libevent_openssl-2.0.so.5 (libc6) => /usr/local/lib/libevent_openssl-2.0.so.5

libevent_extra-2.0.so.5 (libc6) => /usr/local/lib/libevent_extra-2.0.so.5

libevent_core-2.0.so.5 (libc6) => /usr/local/lib/libevent_core-2.0.so.5

libevent-2.0.so.5 (libc6) => /usr/local/lib/libevent-2.0.so.5

libevent-1.1a.so.1 (libc6) => /usr/lib/libevent-1.1a.so.1

二、安装nginx

1、解压ngnix源代码到/usr/local/src

tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/

2、创建组

cd /usr/local/src/nginx-1.0.11/

group -r nginx

3、创建账号ngnix

-r系统账号 –g加入某一个组 -M 系统账号无需创建家目录

useradd -r -g nginx -s /bin/false -M nginx

4、检测预编译环境

./configure \

--prefix=/usr \ #安装路径

--sbin-path=/usr/sbin/nginx \ #所形成服务进程的安装路径

--conf-path=/etc/nginx/nginx.conf \ #配置文件

--error-log-path=/var/log/nginx/error.log \ #出错日志

--http-log-path=/var/log/nginx/access.log \ #访问通过的日志

--pid-path=/var/run/nginx/nginx.pid \ #父进程ID的文件存放位置

--lock-path=/var/lock/nginx.lock \ #加锁的机制文件

--user=nginx \ #用户

--group=nginx \ #组

--with-http_ssl_module \ #支持ssl模块

--with-http_flv_module \ #支持流媒体模块

--with-http_stub_status_module \ #本地信息输出

--with-http_gzip_static_module \ #支持压缩

--http-client-body-temp-path=/var/tmp/nginx/client/#客户端访问的临时临时路径

--http-proxy-temp-path=/var/tmp/nginx/proxy/ \ #代理临时缓存

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \#支持fastcgi

--with-pcre #支持地址重写

5、编译

make

6、把编译生成的四类文件放到合适的位置

make install

7、启动ngnix服务

[root@localhost ~]# nginx

测试ngnix是不是正常

clip_image001

三、安装mysql

1、解压软件包mysql-5.5.15-linux2.6-i686.tar.gz

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

切换到解压目录下

cd /usr/local/mysql-5.5.15-linux2.6-i686/

2、建立软连接,易于管理和操作

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

查看软连接

[root@localhost local]# ll

lrwxrwxrwx 1 root root 27 07-31 04:58 mysql -> mysql-5.5.15-linux2.6-i686/

3、需要执行的操作

groupadd mysql #创建组mysql

useradd -r -g mysql mysql #创建账号 加入组mysql

cd /usr/local

chown -R mysql . #修改所有者为mysql

chgrp -R mysql . #修改所属组为masql组

cd mysql

scripts/mysql_install_db --user=mysql #执行初始化脚本,以mysql的身份执行

chown -R root . #将所属用户改为root用户

chown -R mysql data #将data目录的所属用户改为mysql

可选项的

cp support-files/my-medium.cnf /etc/my.cnf

bin/mysqld_safe --user=mysql & #启动mysql

cp support-files/mysql.server /etc/init.d/mysqld

4、启动mysql服务

Service mysqld start

netstat -tupln |grep mysql #查看mysql的端口3306是不是开启

chkconfig --add mysqld #设置开机启动

5、查看开机启动设置

[root@localhost mysql]# ll /etc/rc.d/rc3.d/|grep mysql

lrwxrwxrwx 1 root root 16 07-24 22:03 S64mysqld -> ../init.d/mysqld

由于mysql的库文件和头文件是非标准路径,系统默认不会调用,需要我们指定路径,这样系统才可以调用,比如系统的可以调用的库文件只有 /usr/lib、/usr/local/lib、 /lib/ 而mysql的库文件在/usr/local/mysql

6、创建一个文件使系统可以调用mysql库文件

[root@localhost mysql]# cd /etc/ld.so.conf.d/

[root@localhost ld.so.conf.d]# vim mysql.conf #在文件中指明库文件的位置

/usr/local/mysql/lib

[root@localhost ld.so.conf.d]# ldconfig -v |grep mysql

/usr/local/mysql/lib: #可以看到已经调用到库文件

libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0

同样头文件include也需要类似做法

[root@localhost mysql]# cd /usr/include/

[root@localhost include]# ln -s /usr/local/mysql/include/ mysql #创建一个链接

[root@localhost include]# ll mysql/ #查看mysql的头文件

7、将mysql.server 拷贝到/etc/init.d/下,改名为mysqld

cp support-files/mysql.server /etc/init.d/mysqld

#可以使用service mysqld restart指令启动mysql

四、安装PHP

1、解压php源代码

tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/

2、检测预编译环境

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm --with-libevent-dir=/usr/local --enable-mbstring --with-zlib

--with-mysqli=/usr/local/mysql/bin/mysql_config --with-freetype-dir --with-jpeg-dir --with-png-dir --with-libxml-dir=/usr --enable-xml --with-iconv-dir=/usr/local

3、编译

make

把编译生成的四类文件放在合适的位置

make insall

五、整合nginx和php

[root@localhost php-5.3.7]# cp php.ini-production /usr/local/php/etc/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

1、cd /usr/local/php/etc/

vim php-fpm.conf #编辑文件,启用下列行

30 error_log = log/php-fpm.log

161 pm.max_children = 50

166 pm.start_servers = 20

171 pm.min_spare_servers = 5

176 pm.max_spare_servers = 35

182 pm.max_requests = 500

2、启动fastcgi

[root@localhost etc]# /usr/local/php/sbin/php-fpm &

vim /etc/nginx/fastcgi.conf

fastcgi_param SERVER_SOFTWARE nginx; #修改成nginx

vim /etc/nginx/fastcgi_params #保持与fastcgi.conf一致

3、编辑nginx的配置文件

43 location / {

44 root /usr/html;

45 index index.php index.html index.htm;

46 }

65 location ~ \.php$ {

66 root /usr/html;

67 fastcgi_pass 127.0.0.1:9000;

68 fastcgi_index index.php;

69 fastcgi_param SCRIPT_FILENAME /usr/html$fastcgi_script_name;

70 include fastcgi_params;

71 }

六、测试

1、nginx调动PHP

编辑/usr/html下的index.html文件并改名为index.php

<?php

phpinfo();

?>

clip_image002

3、PHP调动mysql

vim /usr/html/index.php #修改内容如下

clip_image003

测试结果

clip_image004