小生博客:http://xsboke.blog.51cto.com
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、清豐網(wǎng)站維護、網(wǎng)站推廣。
-------謝謝您的參考,如有疑問,歡迎交流
一、 Lamp工作流程
1. Client請求web server,請求頁面為php動態(tài)頁面
2. Web server通過cgi、fastcgi或apache模塊去連接php
3. php server的php-fpm組件處理請求,通過php解析器,解析php語言
4. 然后php server通過MySQL協(xié)議,調(diào)取數(shù)據(jù)并且返回給web server
二、Web server連接php的方式
1. Apache
Apache有三種方式:CGI模式、fastCGI模式、apache模塊。
2. Nginx
Nginx有兩種方式:FastCGI、proxy-pass
三、 FastCGI工作機制
其中fastCGI的性能比CGI好,所以生產(chǎn)環(huán)境一般都是同fastCGI模式
按客戶端請求方式有兩種:動態(tài)請求和靜態(tài)請求
靜態(tài)請求由apache直接響應(yīng)返回
動態(tài)請求需要通過fastcgi協(xié)議調(diào)用phpserver并執(zhí)行返回給apache,有apache返回解釋執(zhí)行后的結(jié)果,如果這個過程涉及對數(shù)據(jù)的操作,php還會通過mysql協(xié)議調(diào)用mysql server
四、 壓力測試工具
1. 常用壓力測試工具
ab、http_load、webbench、siege
2. Ab(由apache自帶的壓力測試工具)
ab命令會創(chuàng)建多個并發(fā)訪問線程,模擬多個訪問者同時對某一URL地址進行訪問
它的測試目標是基于URL的,因此,它既可以用來測試apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web服務(wù)器的壓力
Ab使用注意事項。Linux默認只能同時打開1024個文件,所以最多只能同時處理1024個請求,這個參數(shù)由變量ulimit設(shè)置,ulimit -n可以查看當前允許的同時打開文件數(shù),也可以直接設(shè)置值
五、Php加速器xcache
1. 緩存原理
當php server解釋器,解析某個php頁面后,會將解析的內(nèi)容緩存在緩存文件中,當同一個php
頁面被多次請求時,就不需要每次都進行解析然后再響應(yīng)給apache
六、 案例:lamp+xcache
1. 案例環(huán)境
2. 搭建lamp平臺
Apache和mysql的安裝這里不再介紹,直接從安裝php開始
首先安裝php依賴包
安裝libmcrypt
編譯安裝php
--prefix=/usr/local/php5.6:指定安裝目錄
--with-mysql=mysqlnd //支持mysql
--with-pdo-mysql=mysqlnd//支持pdo模塊
--with-mysqli=mysqlnd//支持mysqli模塊
這三個參數(shù)是實現(xiàn)lamp分離的重要參數(shù)
--with-openssl//支持openssl模塊
--enable-fpm//支持fpm模式
--enable-sockets//啟用socket支持
--enable-sysvshm//啟用系統(tǒng)共享內(nèi)存支持
--enable-mbstring//多字節(jié)字串、像我們的中文就是多字節(jié)字串
--with-freetype-dir//支持freetype、就要裝freetype-devel、跟字體相關(guān)的、字體解析工具
--with-jpeg-dir
--with-png-dir
注:上面的二選項的作用:處理jpeg、png圖片的、php可以動態(tài)生成jpeg圖片
--with-zlib//是個壓縮庫、在互聯(lián)網(wǎng)傳輸時用來壓縮傳輸?shù)?/p>
--with-libxml-dir=/usr//這個libxml是用來解析xml的、指定/usr下
--enable-xml //支持xml的
--with-mhash//支持mhash
--with-mcrypt=/usr/local/libmcrypt //libmcrypt-devel這個程序包所指定的
--with-config-file-path=/etc//指定配置文件的存放路徑的
--with-config-file-scan-dir=/etc/php.d //配置文件掃描路徑
--with-bz2 //支持BZip2
Copy配置文件
優(yōu)化php-fpm程序腳本路徑
拷貝php-fpm配置文件
配置php-fpm文件
啟動php-fpm服務(wù)并開啟9000tcp端口
在php server上新建虛擬主機目錄用于存放php網(wǎng)頁文件(并且創(chuàng)建兩個測試頁)
在mysql server上授權(quán)用于測試連接的賬戶,并且開啟3306tcp端口
在apache server配置apache連接php server
1)
2)
3)
4)
5)
6)
7)
3. 測試lamp平臺
首先測試php是否能夠解析
測試能否連接mysql
4. 在php server上搭建xcache加速器
1) 安裝xcache緩存加速器
如果生成xcache的configure時報錯,如果不報錯則不需要解決這個問題了
解決辦法:
首先yum安裝m4
然后yum安裝autoconf
重新生成configure文件
再次進行編譯安裝
2) 安裝完后出現(xiàn)此行提示代表安裝成功
注釋:這行參數(shù)需要記住,在php.ini配置文件中,添加xcache模塊時,需要指定模塊文件
(xcache.so),而模塊文件就存在此目錄下
3) 創(chuàng)建xcache緩存文件
4) 拷貝xcache后臺管理程序到網(wǎng)站根目錄,同時,也需要拷貝到apache服務(wù)器上一份
5) 配置php.ini文件,使php支持xcache
重啟php-fpm服務(wù)
6) 測試
7) 修改php.ini的時區(qū)
8) 重啟php-fpm并且進行驗證
5. Ab壓力測試工具的安裝和使用
在客戶機安裝,直接yum安裝即可
1) ab工具的使用
2) 并發(fā)連接數(shù)也受linux能同時打開的文件數(shù)限制