lnmp的搭建及php加速
LNMP:Nginx、MySQL、PHP、phpMyAdminweb生產環境。?
????Nginx(發音同?engine?x)是一款輕量級的Web?服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like?協議下發行。由俄羅斯的程序設計師Igor?Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler使用。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好.中國大陸使用nginx網站用戶有:新浪、網易、?騰訊等。淘寶有2次開發Nginx版本tengine地址:http://tengine.taobao.org/。
????Nginx?是一個很強大的高性能Web和反向代理服務器,它具有很多非常優越的特性:
????在高連接并發的情況下,Nginx是Apache服務器不錯的替代品:Nginx在美國是做虛擬主機生意的老板們經常選擇的軟件平臺之一。能夠支持高達?50,000?個并發連接數的響應,感謝Nginx為我們選擇了?epoll?and?kqueue作為開發模型。
Nginx作為負載均衡服務器:Nginx?既可以在內部直接支持?Rails?和?PHP?程序對外進行服務,也可以支持作為?HTTP代理服務器對外進行服務。Nginx采用C進行編寫,不論是系統資源開銷還是CPU使用效率都比?Perlbal?要好很多。
Nginx代碼完全用C語言從頭寫成,已經移植到許多體系結構和操作系統,包括:Linux、FreeBSD、Solaris、Mac?OS?X、AIX以及Microsoft?Windows。Nginx有自己的函數庫,并且除了zlib、PCRE和OpenSSL之外,標準模塊只使用系統C庫函數。而且,如果不需要或者考慮到潛在的授權沖突,可以不使用這些第三方庫。
????作為郵件代理服務器:Nginx?同時也是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作為郵件代理服務器),Last.?fm?描述了成功并且美妙的使用經驗。
Nginx?是一個安裝非常的簡單,配置文件非常簡潔(還能夠支持perl語法),Bugs非常少的服務器:Nginx?啟動特別容易,并且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠不間斷服務的情況下進行軟件版本的升級。-----以上摘自百度文庫、
pcre提供Nginx的URL?Rewrite正則表達式規則的支持,在多數正規網站服務器上是必須安裝的,因為我們多數情況是需要Rewrite規則的支持的,只有少數情況下不需要Rewrite規則的時候(例如某些測試服務器等)。
pcre的在不同平臺安裝的時候,可能因為某些環境因素導致編譯安裝失敗,如果必須安裝而又安裝不上也不必擔心,在后面的安裝過程中會有其他方法補救。
Ldconfig?是什么?
它是一個程序,通常它位于/sbin下,供root用戶使用。它的作用是將/etc/ld.so.conf列出的路徑下的庫文件,緩存到/etc/ld.so.cache以供使用,因此當安裝完一些庫文件,或者修改ld.so.conf增加新的庫路徑后,需要運行一下/sbin/ldconfig,使所有的庫文件都被緩存到ld.so.cache中,如果沒做,即使庫文件在/usr/lib下的,也是不會被使用的,結果編譯過程中報錯,缺少庫。所以再改動庫文件一定要運行ldconfig,在任何目錄下運行都可以。
優點與缺點對比:
select?和epoll效率差的原因:?
select是輪詢、epoll是觸發式的,所以在特定的應用上效率相差會很多
Select:?
1.Socket數量限制:該模式可操作的Socket數由FD_SETSIZE決定,內核默認32*32=1024.?
2.操作限制:通過遍歷FD_SETSIZE(1024)個Socket來完成調度,不管哪個Socket是活躍的,都遍歷一遍.?
Poll:?
1.Socket數量幾乎無限制:該模式下的Socket對應的fd列表由一個數組來保存,?大小不限(默認4k).?
2.操作限制:同Select.?
Epoll:?
1.Socket數量無限制:同Poll?
2.操作無限制:基于內核提供的反射模式,有活躍Socket時,?內核訪問該Socket的callback,不需要遍歷輪詢.但是當所有Socket都活躍的時候,這時候所有的callback都被喚醒,會導致資源的競爭.既然都是要處理所有的Socket,那么遍歷是最簡單最有效的實現方式.
?
?
Php于nginx是采用fastcGI結合的(服務)監聽地址127.0.0.1監聽端口是9000
對于lnmp首先nginx80端口來鏈接fastcgi自己是一個服務提供9000負責與動態程序php進行交談,php有可能連接數據庫,然后再去鏈接數據庫mysql.
?
???lnmp搭建?
????安裝mysql綠色軟件包(二進制安裝)
參考網址:http://dev.mysql.com/doc/refman/5.1/zh/index.html
環境:mysql-5.5.15-linux2.6-i686.tar.gz
步驟:
1.tar?-zxvf?mysql-5.5.15-linux2.6-i686.tar.gz?-C?/usr/local?拆包
2.ln?-s?mysql-5.5.15-linux2.6-i686?mysql???做符號鏈接
3.groupadd?-r?mysql
4.useradd?-r?-gmysqlmysql?-s?/sbin/nologin
5.chown?-R?mysql:mysql?.????更改當前目錄的所有者和所屬組屬于mysql
6.scripts/mysql_install_db?--user=mysql?初始化數據庫
7.chown?-R?root?.
8.chown?-R?mysql?data/???當mysql進行運行的時候可以對data這個目錄進行寫數據
9.圖1
10.cp?support-files/my-medium.cnf?/etc/my.cnf???????復制mysql的配置文件
11.cp?support-files/mysql.server/etc/init.d/mysqld??復制控制文件
12.圖2
13.vim?/etc/profile????寫入44行???PATH=$PATH:/usr/local/mysql/bin搜索路徑
14.vim?/etc/ld.so.conf.d/mysql.conf???寫入/usr/local/mysql/lib???刷新緩存ldconfig
15.ldconfig?-pv?|grep?mysql??測試庫文件是否被加載進入
16.ln?-s?/usr/local/mysql/include/usr/include/mysql?為頭文件創建一個符號鏈接
17.mysqladmin?-u?root?-p?password?'123'
?
安裝nginx(源碼安裝)
環境:libevent-2.0.16-stable.tar.gznginx-1.0.11.tar.gz??pcre-devel-6.6-2.el5_1.7.i386.rpm
步驟:
1.tar?-zxvf?libevent-2.0.16-stable.tar.gz?-C?/usr/local/src
2.cd?/usr/local/src
3../configure--prefix=/usr/local/libevent?指明安裝目錄
4.make
5.make?install
6.圖3
7.vim?/etc/ld.so.conf.d/libevent.conf??寫入??/usr/local/libevent/lib?
8.ldconfig
9.ldconfig?–pv?|gerp?libevent
10.ln?-s?/usr/local/libevent/include???/usr/include/libevent
11.mkdir?/mnt/cdrom?(這里指掛載本機器上的光盤,PCRE庫nginx需要有正則表達式的支持)
12.mount?/dev/cdrom/mnt/cdrom/
13.rpm?–ivh?/mnt/cdrom/Server/?pcre-devel-6.6-2.el5_1.7.i386.rpm
14.tar?-zxvf?nginx-1.0.11.tar.gz?-C?/usr/local/src/?(安裝nginx)
15.groupadd?–r?nginx
16.useradd?-r?-g?nginx?-s?/sbin/nologinnginx
17../configure?\
-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?\
--lock-path=/var/lock/nginx.lock?\
--user=nginx?\
--group=nginx?\
--with-http_ssl_module?\
--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/?\
--with-pcre
18.mkar&&make?install
19.cd?/usr/local/nginx/
圖4
20.mkdir?-pv?/var/tmp/nginx/clien
21.chmod?a+x?nginx
22.vim?nginx附件控制腳本讓80端口自動起來(查看附件)
23.chkconfig?–add?nginxnginx交給chkconfig來管理
24.chkonfig?–list?|grep?nginx查看在5種級別下是否啟用
?
PHP安裝(源碼)新版本PHP都可以支持fastcgi的
環境:php-5.4.13.tar.bz2
步驟:
1.tar?–jxvf?php-5.4.13.tar.bz2?–C?/usr/local/src
2.cd?/usr/local/src?
3../configure\
--prefix=/usr/local/php?\
--enable-fpm\
--enable-sockets\
--with-mysql=/usr/local/mysql?\
????--with-mysqli=/usr/local/mysql/bin/mysql_config\
--enable-mbstring\
--enable-xml\
--with-png-dir?\
--with-png\
--with-jpeg-dir\
--with-zlib\
--with-freetype-dir?\
--with-config-file-path=/etc/php?\
--with-config-file-scan-dir=/etc/php5.d
4.make?&&?make?install
5.cd?/usr/local/src/php
6.vim?/etc/profile?寫入??:/usr/local/php/bin
7.?.?/etc/profile測試?echo?$PATH是否加入
8.mkdir?/etc/php??/etc/php5.d
9.cp?php.ini-production???/etc/php/php.ini
10.cp?sapi/fpm/init.d.php-fpm??/etc/init.d/php-fpm?(php-fpm的控制腳本)
11.chmod???a+x??/etc/init.d/php-fpm
12.cd?/uer/local/php/etc/
13.cp?php-fpm.conf.default???php-fpm.conf
14.service?php-fpm?start啟動fpm(fpm是fastcgi的管理器)
15.netstart?–tupln?|grep?fpm查看fpm的端口9000
圖5
16.chkconfig?--add?php-fpmchkconfig--list?|grep?php?查看需要傳遞nginx,當php頁面傳遞過來怎樣訪問9000端口
17.vim/etc/nginx/nginx.conf
圖6
圖7
syntax:?location?[=|~|~*|^~|@]/uri/?{....}
~?表示按大小寫匹配
~*?不區分字符的大小寫
^~?禁止做正則表達式匹配的
=?表示精確匹配
如?location/bbs不加=號碼表示匹配bbs目錄下的所有的對象,包括子目錄下的對象加=號表示之匹配bbs下的對象,不包括子目錄中的
18.service?nginx?restart?重新啟動,更改了配置文件則需要重新啟動
19.service?php-fpm?restart?
?
測試?nginx?
圖8
1.cd/usr/local/nginx/html/
2.mv?index.html?index.php
3.vim?index.php
圖9
圖10
4service?mysql?stop
圖11
圖12
?
實現xcache對PHP加速
Zend?Xcache??Eaccelerate都可以實現對php加速
Zend?Studio是專業開發人員在使用PHP整個開發周期中唯一的集成開發環境(IDE),它包括了PHP所有必須的開發部件。通過一整套編輯、調試、分析、優化和數據庫工具,Zend?Studio加速開發周期,并簡化復雜的應用方案。特點:⑴快速代碼開發與配置本地和遠程調試器;⑵數據庫連通性&SQL工具團隊合作環境;⑶完全PHP?4/PHP?5切換PHPDocs/PHP文檔處理程序支持;⑷SFTP、FTP以至SSH的安全連接100個以上代碼摘錄;⑸50個以上樣品數據庫應用程序與Zend?Platform組合。
XCache?是一個開源的?opcode?緩存器/優化器,?這意味著他能夠提高您服務器上的?PHP?性能.?他通過把編譯?PHP?后的數據緩沖到共享內存從而避免重復的編譯過程,?能夠直接使用緩沖區已編譯的代碼從而提高速度.?通常能夠提高您的頁面生成速率?2?到5?倍,?降低服務器負載.
eAccelerator是一個自由開放源碼php加速器,優化和動態內容緩存,提高了php腳本的緩存性能,使得PHP腳本在編譯的狀態下,對服務器的開銷幾乎完全消除。它還有對腳本起優化作用,以加快其執行效率。使您的PHP程序代碼執效率能提高1-10倍;首先您要安裝好PHP,然后再來編譯安裝?eaccelerator。
環境:xcache-2.0.1.tar.gz
步驟:
1.tar?-zxvf?xcache-2.0.1.tar.gz?-C?/usr/local/src/拆解
2.cd?/usr/local/src/xcache-2.0.1/
3.圖13
4.圖14
5.phpize?或者執行/usr/local/php/bin/phpize?(phpize命令是用來準備?PHP?擴展庫的編譯環境的)
6.圖15
7../configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config
8.make
9.make?install
10.cd?/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/?
11.cd?/usr/local/src/xcache-2.0.1其中有個xcache.ini?初始化文件
12.cp?xcache.ini?/etc/php5.d/拷貝的php5.d(額外功能配置存放的目錄)PHP在工作的時候會自動掃描這個目錄,怎樣才能掃描到呢
13.vim?xcache.ini
圖18
14.測試
15.vim?/usr/local/nginx/html/index.php
16.圖20
17.圖19
18.另外我們可以使用xcache圖形的界面來管理加速
19.cd?/usr/local/src/xcache-2.0.1/admin
20.圖21
21.圖22
22.物理目錄訪問
23.cp?-r?admin/?/usr/local/nginx/html/
24.cd?/usr/local/nginx/html/
25.chmod?a+rx?admin/
圖23
圖24
26.chmod?o+r?index.php
27.cd?/etc/php5.d/(對xcache進行加密管理,限制其他用戶只有輸入密碼才可以訪問)
圖25
echo?-n?"admin"?|md5?sum?可以實現MD5的加密
圖26
29.servicephp-fpm?restart
?
附件:http://down.51cto.com/data/2363459
本文轉自 only223wym 51CTO博客,原文鏈接:http://blog.51cto.com/ymchaofeng/1292345,如需轉載請自行聯系原作者 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的lnmp的搭建及php加速的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux查找文件里面的内容
- 下一篇: cisco dhcp vlan vrrp