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的軟件包內,安裝該軟件包