php加速器(XCache),php以模塊的形式編譯-創(chuàng)新互聯(lián)

PHP簡介

創(chuàng)新互聯(lián)為客戶提供專業(yè)的做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、移動(dòng)網(wǎng)站建設(shè)等網(wǎng)站方面業(yè)務(wù)。

PHP是通用服務(wù)器端腳本編程語言,其主要用于web開發(fā)以實(shí)現(xiàn)動(dòng)態(tài)web頁面,它也是最早實(shí)現(xiàn)將腳本嵌入HTML源碼文檔中的服務(wù)器端腳本語言之一。同時(shí),php還提供了一個(gè)命令行接口,因此,其也可以在大多數(shù)系統(tǒng)上作為一個(gè)獨(dú)立的shell來使用。

PHP Zend Engine

Zend Engine是開源的、PHP腳本語言的解釋器,由C語言開發(fā)且經(jīng)過高度優(yōu)化,并能夠做為PHP的后端模塊使用。Zend Engine為PHP提供了內(nèi)存和資源管理的功能以及其它的一些標(biāo)準(zhǔn)服務(wù),其高性能、可靠性和可擴(kuò)展性在促進(jìn)PHP成為一種流行的語言方面發(fā)揮了重要作用。

Zend Engine的出現(xiàn)將PHP代碼的處理過程分成了兩個(gè)階段:首先是分析PHP代碼并將其轉(zhuǎn)換為稱作Zend opcode的二進(jìn)制格式(類似Java的字節(jié)碼),并將其存儲(chǔ)于內(nèi)存中;第二階段是使用Zend Engine去執(zhí)行這些轉(zhuǎn)換后的Opcode。

PHP的Opcode

Opcode是一種PHP腳本編譯后的中間語言,就像Java的ByteCode,或者.NET的MSL。PHP執(zhí)行PHP腳本代碼一般會(huì)經(jīng)過如下4個(gè)步驟(確切的來說,應(yīng)該是PHP的語言引擎Zend):

1、Scanning(Lexing)(掃描) —— 將PHP代碼轉(zhuǎn)換為語言片段(Tokens)

2、Parsing(分析) —— 將Tokens轉(zhuǎn)換成簡單而有意義的表達(dá)式

3、Compilation(編譯) —— 將表達(dá)式編譯成Opocdes

4、Execution(執(zhí)行) —— 順次執(zhí)行Opcodes,每次一條,從而實(shí)現(xiàn)PHP腳本的功能

php的加速器

PHP進(jìn)程(對應(yīng)一次請求)編譯的結(jié)果無法被第二個(gè)PHP進(jìn)程使用(opcode無法共享),這使得每一次對動(dòng)態(tài)頁面的請求都需要進(jìn)行掃描,分析,編譯,執(zhí)行,即使是一模一樣的請求也需要也需要經(jīng)歷這4個(gè)步驟。然后就有了各種PHP加速器。

php的加速器是基于PHP的特殊擴(kuò)展機(jī)制,如opcode緩存擴(kuò)展,也可以將opcode緩存于php的共享內(nèi)存中,從而可以讓同一段代碼的后續(xù)重復(fù)執(zhí)行時(shí)跳過編譯階段以提高性能。由此也可以看出,這些加速器并非真正提高了opcode的運(yùn)行速度,而僅是通過分析opcode后并將它們重新排列以達(dá)到快速執(zhí)行的目的。常見的php加速器有:APC (Alternative PHP Cache),eAccelerator,XCache,NuSphere PhpExpress,Zend Optimizer和Zend Guard Loader........其中XCache快速而且穩(wěn)定,經(jīng)過嚴(yán)格測試且被大量用于生產(chǎn)環(huán)境。項(xiàng)目地址:http://xcache.lighttpd.net/

XCache的安裝

安裝的版本是xcache-3.1.0.tar.bz2

1、安裝

[root@www ~]# ll total 20532 ..... -rw-r--r--.  1 root root    146444 Jul  5 10:41 xcache-3.1.0.tar.bz2 ..... [root@www ~]# tar xf xcache-3.1.0.tar.bz2  [root@www ~]# cd xcache-3.1.0 [root@www xcache-3.1.0]# /usr/local/php-5.4/bin/phpize  #準(zhǔn)備一個(gè)模塊以實(shí)現(xiàn)編譯php支持                                       #第三方模塊(與當(dāng)前的php整合) Configuring for: PHP Api Version:         20100412 Zend Module Api No:      20100525 Zend Extension Api No:   220100525

/usr/local/php-5.4/bin/phpize 這里必須要執(zhí)行這一步,執(zhí)行完成之后,安裝包的目錄下才會(huì)有configure腳本文件

[root@www xcache-3.1.0]# ./configure --enable-xcache --with-php-config=/usr/local/php-5. 4/bin/php-config ....... [root@www xcache-3.1.0]# make && make install

安裝結(jié)束時(shí),會(huì)出現(xiàn)類似如下行:

Installing shared extensions:/usr/local/php-5.4/lib/php/extensions/no-debug-non-zts-20100525

2、編輯php.ini,整合php和xcache

首先將xcache提供的樣例配置導(dǎo)入php.ini

[root@www xcache-3.1.0]# mkdir /etc/php.d [root@www xcache-3.1.0]# cp xcache.ini /etc/php.d

說明:xcache.ini文件在xcache的源碼目錄中。

接下來編輯/etc/php.d/xcache.ini,找到zend_extension開頭的行,修改為如下行:

extension = /usr/local/php-5.4/lib/php/extensions/no-debug-non-zts-20100525/xcache.so

注意:如果php.ini文件中有多條zend_extension指令行,要確保此新增的行排在第一位。

xcache.ini中的幾項(xiàng)參數(shù):

; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows xcache.size  =               60M                             #用于緩存的內(nèi)存大小 ; set to cpu count (cat /proc/cpuinfo |grep -c processor) xcache.count =                 1                              #設(shè)置成cpu的核心數(shù) ; just a hash hints, you can always store count(items) > slots xcache.slots =                8K ; ttl of the cache item, 0=forever xcache.ttl   =                 0 ; interval of gc scanning expired items, 0=no scan, other values is in seconds xcache.gc_interval =           0

完成之后中心加載服務(wù)

[root@www xcache-3.1.0]# service php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm  done

訪問配置頁面:

php加速器(XCache),php以模塊的形式編譯

php加速器(XCache),php以模塊的形式編譯

已加載xcache

用ab命令對php服務(wù)器進(jìn)行壓測,命令格式如下

ab -n num -c num url

-n  #共多少次請求

-c   #并發(fā)請求數(shù)

先把緩存功能關(guān)掉:

[root@www php.d]# mv xcache.ini xcache.ini.bak [root@www php.d]# service php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm  done

開始測試:

[root@www ~]# ab -n 200 -c 5 http://admin.xiaoxiao.com/index.php This is ApacheBench, Version 2.3 <$Revision: 1554214 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking admin.xiaoxiao.com (be patient) Completed 100 requests Completed 200 requests Finished 200 requests

php加速器(XCache),php以模塊的形式編譯

啟動(dòng)xcache:

[root@www php.d]# mv xcache.ini.bak xcache.ini [root@www php.d]# service php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm  done [root@www ~]# ab -n 500 -c 20 http://admin.xiaoxiao.com/index.php .........

php加速器(XCache),php以模塊的形式編譯

速度是兩倍多一點(diǎn),效果還是挺明顯的~~

.................^_^

php以模塊的形式工作

php以模塊的形式與httpd整合,兩者只能運(yùn)行在同一臺(tái)服務(wù)器上。

首先解決依賴關(guān)系,安裝libxml2-devel,bzip2-devel,libmcrypt-devel。若需要添加GD庫,libjpeg-turbo-devel,libpng-devel,freetype-devel,把這3個(gè)包也裝上,然后進(jìn)行編譯。

[root@CentOS-6 php-5.4.26]# ./configure --prefix=/usr/local/php-5.4 --with-mysql=mysqlnd  --with-pdo-mysql=mysqlnd --with-openssl --with-mysqli=mysqlnd --enable-mbstring --wit  h-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml    --enable-sockets --with-apxs2=/usr/local/apache-2.4.9/bin/apxs --with-mcrypt  --with-con    fig-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-gd --enable-ma    intainer-zts[root@CentOS-6 php-5.4.26]# make && make install

--enable-maintainer-zts       #如果httpd使用的mpm為event或者worker,這項(xiàng)一定要加上,

                          #若果使用的是prefork,這項(xiàng)一定不能加

--with-apxs2=/usr/local/apache/bin/apxs     #apx是httpd的鉤子函數(shù),它能夠?qū)崿F(xiàn)為apache編

                                     #譯第三方模塊,php要編譯成apache模塊,需要指

                                         #定函數(shù)的位置

添加配置文件

[root@CentOS-6 php-5.4.26]# cp php.ini-production /etc/php.ini

編輯apache配置文件httpd.conf,使httpd支持php

添加如下兩行

   AddType application/x-httpd-php  .php        #一般情況下加這一行就行    AddType application/x-httpd-php-source  .phps

識別默認(rèn)頁面

<IfModule dir_module>     DirectoryIndex index.php index.html </IfModule>

添加測試頁面,后重新加載httpd服務(wù)

[root@CentOS-6 ~]# vim /usr/local/apache-2.4.9/htdocs/index.php <?php       phpinfo(); ?> ....... [root@CentOS-6 ~]# service httpd force-reload Reloading httpd:

php加速器(XCache),php以模塊的形式編譯

php模塊已能夠正常工作.................^_^

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:php加速器(XCache),php以模塊的形式編譯-創(chuàng)新互聯(lián)
文章出自:http://muchs.cn/article14/ijpde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、動(dòng)態(tài)網(wǎng)站、Google、搜索引擎優(yōu)化、網(wǎng)站收錄面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)