国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

PHP網(wǎng)站提速三大“軟”招

瀏覽:76日期:2024-01-24 16:26:13
文/李鯤程隨著網(wǎng)絡(luò)的普及,網(wǎng)站已經(jīng)滲透到了每個(gè)行業(yè),但是由于目前專線費(fèi)用讓很多企業(yè)和個(gè)人難以承受,所以共享帶寬成為很多網(wǎng)站的首選方案。費(fèi)用雖然降低了但是一個(gè)新的問題很快就出現(xiàn)了,那就是共享帶寬的網(wǎng)速很慢,有時(shí)甚至讓人無法忍受。如何能讓自己的網(wǎng)站快起來,成為人們關(guān)心的問題,筆者結(jié)合親身實(shí)踐來講講軟辦法的一些實(shí)際應(yīng)用,希望能夠?qū)ψx者有所幫助。;;筆者采用的是Linux操作系統(tǒng),Apache+PHP的網(wǎng)站構(gòu)建方法。代碼優(yōu)化通常要求程序員要有好的編程習(xí)慣,盡量減少冗余代碼的出現(xiàn),目前也有好多工具能夠完成這項(xiàng)功能,對(duì)于一般的html文件,用于減少冗余的減肥工具很多,而對(duì)于PHP程序來說這樣的工具就不太多了,但是Zend;Technologies的Zend;Optimizer是一款非常好的代碼優(yōu)化工具,可以免費(fèi)從Zend;Technologies的網(wǎng)站上獲得。Zend;Optimizer的使用方法也非常簡單,只要將下載的ZendOptimizer-1[1].0.0-PHP_4.0.4-;Linux_glibc21-i386.tar.gz文件解壓縮,將其中的ZendOptimizer.so文件拷貝到/usr/local/Zend/lib目錄下,然后修改php.ini文件,在最后添加以下幾行:PHP網(wǎng)站提速三大“軟”招顯示說明Zend;Optimizer工作正常zend_optimizer.optimization_level=15zend_extension='/usr/local/;Zend/lib/;ZendOptimizer.so'設(shè)置完成后重啟Apache服務(wù)器,編寫一段PHP程序:<?Phpinfo();?>一般來說Zend;Optimizer能將系統(tǒng)的效率提升30%~40%,這是用戶最關(guān)心的。壓縮頁面HTTP1.1協(xié)議支持頁面壓縮傳送,也就是說服務(wù)器把一個(gè)頁面壓縮傳送到客戶端,然后在客戶端將頁面解壓縮再顯示給客戶。在服務(wù)器端有兩種傳輸方式,一種是頁面事先已經(jīng)壓縮好了,傳送時(shí)只要將壓縮頁面?zhèn)魉偷娇蛻舳司托?,這種適用于靜態(tài)網(wǎng)頁多的情況,但是對(duì)于大多數(shù)站點(diǎn),動(dòng)態(tài)頁面比較多,這種方法不太適合,因?yàn)楹芏鄠鞯娇蛻舳说捻撁嫫鋵?shí)是沒有的,是服務(wù)器接到客戶端用戶請(qǐng)求動(dòng)態(tài)產(chǎn)生的,所以就要求每生成一個(gè)動(dòng)態(tài)頁面都要在傳到客戶端以前先打包壓縮。從PHP的4.0.4版以后,可以在php.ini文件中增加一行配置“output_handler;=;ob_gzhandler”,這樣每個(gè)動(dòng)態(tài)生成的頁面在傳送到客戶端之前都會(huì)進(jìn)行壓縮,但是根據(jù)PHP官方站點(diǎn)的說明,這個(gè)參數(shù)不能與“zlib.output_compression;=;on”參數(shù)同時(shí)使用,因?yàn)槿菀滓餚HP工作不正常,另外它只能壓縮PHP程序的動(dòng)態(tài)生成的頁面,對(duì)于大量的靜態(tài)頁面尤其是圖像文件就不行了。但是mod_gzip模塊為Apahe提供了將靜態(tài)頁面在傳給客戶端以前先壓縮的功能,它的壓縮比最大能到10,一般情況下可以到;3,也就是說網(wǎng)站的傳輸速率一下提高了三倍多。要想使用mod_gzip功能首先要下載mod_gzip.c或mod_gzip.so文件,如果下載的是.c文件還要用Apache帶的工具將它轉(zhuǎn)化為.so文件才能使用,方法是運(yùn)行下面的命令:;-i;-a;mod_gzio.ccp;mod_foo.so/path/to/apache/libexec/mod_gzip.sochmod;755/path/to/apache/libexec/mod_foo.so系統(tǒng)會(huì)在/path/to/apache/;etc/httpd.conf中自動(dòng)激活該模塊,如果下載的是.so文件則要將該文件拷貝到相應(yīng)的目錄下,然后在httpd.conf文件中添加LoadModule;gzip_module;libexec/;mod_gzip.so,使模塊生效。需要注意兩點(diǎn),第一,要想使用.so文件,Apache必須包含了mod_so模塊(可以通過httpd;-l命令來查詢該模塊是否生效);第二,如果下載的是.so文件,它是與Apache的版本有關(guān)的,要注意下載的版本與自己使用的Apache是否一致,如果是.c文件就沒有這個(gè)問題。模塊生效后還要對(duì)Apache進(jìn)行相應(yīng)的配置,需要在httpd.conf文件中加入一些參數(shù):mod_gzip_on;Yes(模塊是否生效)mod_gzip_minimum_file_size;1002(最小壓縮文件大小)mod_gzip_maximum_file_size;0(最大壓縮文件大小,0表示沒有限制)mod_gzip_maximum_inmem_size;60000(最大可占用內(nèi)存)mod_gzip_item_include;file;'..gif102SINA>DOUBLE_QUOTATION;(以gif結(jié)尾的文件要壓縮傳送)mod_gzip_item_include;file;'.txt102SINA>DOUBLE_QUOTATION;mod_gzip_item_include;file;'.html102SINA>DOUBLE_QUOTATION;mod_gzip_item_exclude;file;'.css102SINA>DOUBLE_QUOTATION;使用了壓縮模塊后,當(dāng)用戶訪問站點(diǎn)時(shí)會(huì)在日志文件中記錄相應(yīng)的信息,比如“mod_gzip;:OK;In:file_length;Out:gzipfile_length”,表示該頁面?zhèn)鬏斨惺褂昧薵zip功能,輸入文件、輸出文件大小都有說明。文件緩存這種方法通常是針對(duì)PHP、PERL等CGI程序而言的,因?yàn)檫@些程序有一個(gè)共同的特征就是接到用戶的請(qǐng)求后不是馬上將結(jié)果返回給用戶,而是經(jīng)過解釋器解釋執(zhí)行后將執(zhí)行結(jié)果返回給客戶,這期間通常都要涉及到數(shù)據(jù)庫的訪問。這樣就會(huì)出現(xiàn)一個(gè)問題,當(dāng)兩個(gè)用戶訪問同一個(gè)頁面時(shí),系統(tǒng)將分別對(duì)兩個(gè)請(qǐng)求進(jìn)行操作,但事實(shí)上這兩個(gè)操作可能是一模一樣的,這樣無形當(dāng)中增加了系統(tǒng)的負(fù)擔(dān)。所以通常的解決辦法是在系統(tǒng)內(nèi)存中開辟出一段空間,當(dāng)用戶第一次訪問頁面后將執(zhí)行結(jié)果存放在該內(nèi)存中,當(dāng)有用戶再一次訪問該頁面時(shí),系統(tǒng)就將頁面直接從內(nèi)存中調(diào)出而不需要重新解釋執(zhí)行,這段內(nèi)存空間就叫緩存。目前流行的緩存管理程序有兩個(gè),一個(gè)是FastCGI,另一個(gè)是Zend;Technologies公司的Zend;Cache。FastCGI主要是針對(duì)Perl、C、C++等CGI腳本程序設(shè)計(jì)的,可以有效地利用內(nèi)存作緩存,來自客戶端的請(qǐng)求都會(huì)被傳送到FastCGI應(yīng)用服務(wù)程序,F(xiàn)astCGI處理用戶的請(qǐng)求后將結(jié)果返回給用戶。一般的CGI程序這時(shí)將結(jié)束進(jìn)程自動(dòng)退出,但是FastCGI進(jìn)程繼續(xù)保持,這時(shí)它在接到新的用戶請(qǐng)求后不必建立新的進(jìn)程,可以立即處理用戶請(qǐng)求,也就是說CGI程序建立進(jìn)程順序執(zhí)行然后退出,而FastCGI程序順序執(zhí)行并永遠(yuǎn)循環(huán)。PHP網(wǎng)站提速三大“軟”招Zend;Cache的管理界面要想使用FastCGI首先要把FastCGI編譯到Apache中,方法非常簡單,這里就不說明了,還要在http.conf文件里作設(shè)置:AddHandler;fastcgi-script;.fcg;.fcgi;.fpl;Options;ExecCGI;Indexes;Includes這樣FastCGI就可以正常工作了,下面是FastCGI程序員手冊中的一段例子程序:#!fcgi-savvy-perluse;FCGI;;#;初始化#;Initialization;code;=;0;#;Response;loopwhile;(FCGI::accept;>=;0);{;;#FastCGI建立循環(huán)體print;'Content-type:text/html;';;#程序執(zhí)行print;'<head><title>FastCGI;Demo;Page;(perl)</title></head>;';print;'<h1>FastCGI;Demo;Page;(perl)</h1>;';print;'This;is;coming;from;a;FastCGI;server.;<BR>;';print;'Running;on;<EM>publish152.internal.sina.com.cn</EM>;to;<EM></EM><BR>;';++;print;'This;is;connection;number;';}FastCGI對(duì)Perl等CGI程序的功能非常強(qiáng)大,但是它對(duì)PHP程序確是無能為力的,而且需要在編程時(shí)增加內(nèi)容,也就是說它需要一些人為的因素才能發(fā)揮作用。相比之下Zend;Technologies公司的Zend;Cache針對(duì)PHP的緩存功能是很強(qiáng)大的,只要安裝了該軟件,程序員就像編寫其他PHP程序一樣,不需要增加代碼,就可以實(shí)現(xiàn)緩存功能,有利于系統(tǒng)升級(jí),十分方便。它是一個(gè)付費(fèi)軟件。它有緩存功能并能通過圖形界面對(duì)其進(jìn)行管理,其中:Cache;Control頁面,可以配置Zend;Cache,顯示其當(dāng)前狀態(tài),還能啟動(dòng)和停止Zend;Cache功能;Scripts頁面,Zend;Cache的內(nèi)容,包括每個(gè)文件的狀態(tài),還可以根據(jù)點(diǎn)擊次數(shù)和緩存占有大小選擇文件;Benchmark頁面,可以測試Zend;Cache的緩存效果,并以圖形方式給出顯示,它測試的是每秒鐘完成PHP請(qǐng)求的次數(shù)。它的安裝、驗(yàn)證方法與Zend;Optimizer基本相同,這里就不詳細(xì)說明了,感興趣的讀者可以參考用戶手冊,它的強(qiáng)大功能和便利的管理方法確實(shí)讓人心動(dòng)。以上是網(wǎng)站提速常見的幾種方法,對(duì)于不同的網(wǎng)站需要采用不同的手段,所對(duì)應(yīng)的提速方案也不盡相同,但總體上不外乎是以上提到的三招,讀者可以根據(jù)自己的實(shí)際情況具體問題具體分析。注意:考慮到客戶端軟件的復(fù)雜性,因?yàn)橛行┛蛻舳塑浖赡懿恢С帜承┨匦裕热纾琺od_gzip對(duì)頁面進(jìn)行壓縮,但是如果客戶端使用的是Netscape就不行,因?yàn)樗荒馨呀邮盏降膲嚎s頁面解壓縮,導(dǎo)致頁面不能正常顯示。
標(biāo)簽: PHP
主站蜘蛛池模板: 亚洲黄色片网站 | 特色一级片 | 日韩一级高清 | 怡红院免费在线视频 | 日本乱理伦片在线观看网址 | 九九热精品在线 | 男人的天堂欧美 | 欧美高清强视频 | 特级一级毛片视频免费观看 | 久久免费大片 | 另类视频在线观看 | 久久偷看各类wc女厕 | 国产情侣久久精品 | 九九草在线观看 | 亚洲最大看欧美片网站 | 韩国毛片免费看 | 国产精品亚洲第一区二区三区 | a毛片在线看片免费 | 久久精品国产大片免费观看 | 日韩欧美在线视频一区二区 | 露脸国产野战最新在线视频 | 99精彩免费观看 | 久久精品福利视频 | 久久免费精品视频在线观看 | 三级毛片在线播放 | 亚洲欧美久久一区二区 | 韩国一级做a爰片性色毛片 韩国一区在线 | 国产高清精品在线 | 日韩毛片欧美一级国产毛片 | 亚洲国产精品成人午夜在线观看 | 精品国产免费人成在线观看 | 久久精品国产亚洲片 | 欧美日韩 国产区 在线观看 | 成人毛片一区二区三区 | 国产精品18久久久久网站 | 国产精品久久久久久 | 看美女毛片 | 国产成人精品亚洲777图片 | 久久一日本道色综合久 | 手机看片av | 久久久久亚洲精品影视 |