LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构,Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
LAMP(Linux+Apache+Mysql+Perl/PHP/Python)也是一组常用来搭建动态网站或者服务器的开源软件,虽然nginx和apache都能实现网站服务器的搭建,但是两者还是有不小的差距的,下面我们来简单介绍一下。
Apache:进程方式处理用户的请求,每个时刻保持8个空闲的子进程,当用户并发连接请求比较多的时候,相应的子进程也会很多,而每个进程要占用内存空间,所以内存空间占用大,效率低,一般情况下,同一时刻并发连接请求最多不会超过1024个。Apache采用select机制也可以叫轮训机制,效率较低,但是从另一方面来说,这种机制是apache的网站构架很稳定。
Nginx:线程方式处理用户的请求,和apache独占内存不同的是nginx是共享内存的,所以只需要开少量的进程,当有用户请求时,再有这些进程开辟一些线程就行了,这些线程是共享这一个进程的内存空间,但是不好的是当进程崩溃之后,所有由进程开辟的线程也都会崩溃,所以较apache稳定性要差得多。Nginx采用epoll机制也可以叫时间通知机制,效率较select机制要高得多。同一时刻并发送连接请求最高可以达到50000个。
从上面可以看出Apache和nginx各有各的优点,下面进行LNMP环境的搭建
软件环境:nginx-1.0.11.tar.gz 、mysql-5.5.15-linux2.6-i686.tar.gz、php-5.4.13.tar.bz2
、libevent-2.0.16-stable.tar.gz、pcre-6.6-2.e15_1.7.i389.rpm、pcre-devel-6.6-2.e15_1.7.i389.rpm
一、Nginx的安装
内容汇集:
pcre(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正规表达式库.这些在执行正规表达式模式匹配时用。与Perl 5同样的语法和语义是很有用的。 Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒,因此改用pcre来解决C语言中使用正则表达式的问题。
Libevent:是一个强大的跨平台的事件通知库,如果不想被多线程困扰,可以考虑这个平台,它从1.2.* 版本开始支持轻量级的http server 开发支持。随后陆续还推出轻量级 DNS server、RPC server 开发支持,这组事件API提供了一种当某个指定文件描述符有效或时间到达时执行某个函数的机制,在使用事件API前必须使用event_init()初始化,In order to process events, an application needs to call。
1、拆解并安装
tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src
./configure --prefix=/usr/local/libevent
make && make install
2、处理头文件和库文件
库文件的处理:
编辑/etc/ld.so.conf.d/libevent.conf,内容如下
/usr/local/libevent/lib
刷新并查看
头文件的处理:
ln -s /usr/local/libevent/include /usr/include/libevent
3、为了让nginx支持pcre(perl库)的话还需要安装一个名为pcre的软件包
经查看后发现已经有安装,但是有些额外的库放在名为pcre-devel的软件包内,安装该软件包