PHP簡介
創(chuàng)新互聯(lián)為客戶提供專業(yè)的做網(wǎng)站、成都網(wǎng)站設(shè)計、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項目涵蓋了網(wǎng)頁設(shè)計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、移動網(wǎng)站建設(shè)等網(wǎng)站方面業(yè)務(wù)。PHP是通用服務(wù)器端腳本編程語言,其主要用于web開發(fā)以實現(xiàn)動態(tài)web頁面,它也是最早實現(xiàn)將腳本嵌入HTML源碼文檔中的服務(wù)器端腳本語言之一。同時,php還提供了一個命令行接口,因此,其也可以在大多數(shù)系統(tǒng)上作為一個獨立的shell來使用。
PHP Zend Engine
Zend Engine是開源的、PHP腳本語言的解釋器,由C語言開發(fā)且經(jīng)過高度優(yōu)化,并能夠做為PHP的后端模塊使用。Zend Engine為PHP提供了內(nèi)存和資源管理的功能以及其它的一些標(biāo)準(zhǔn)服務(wù),其高性能、可靠性和可擴展性在促進PHP成為一種流行的語言方面發(fā)揮了重要作用。
Zend Engine的出現(xiàn)將PHP代碼的處理過程分成了兩個階段:首先是分析PHP代碼并將其轉(zhuǎn)換為稱作Zend opcode的二進制格式(類似Java的字節(jié)碼),并將其存儲于內(nèi)存中;第二階段是使用Zend Engine去執(zhí)行這些轉(zhuǎn)換后的Opcode。
PHP的Opcode
Opcode是一種PHP腳本編譯后的中間語言,就像Java的ByteCode,或者.NET的MSL。PHP執(zhí)行PHP腳本代碼一般會經(jīng)過如下4個步驟(確切的來說,應(yīng)該是PHP的語言引擎Zend):
1、Scanning(Lexing)(掃描) —— 將PHP代碼轉(zhuǎn)換為語言片段(Tokens)
2、Parsing(分析) —— 將Tokens轉(zhuǎn)換成簡單而有意義的表達式
3、Compilation(編譯) —— 將表達式編譯成Opocdes
4、Execution(執(zhí)行) —— 順次執(zhí)行Opcodes,每次一條,從而實現(xiàn)PHP腳本的功能
php的加速器
PHP進程(對應(yīng)一次請求)編譯的結(jié)果無法被第二個PHP進程使用(opcode無法共享),這使得每一次對動態(tài)頁面的請求都需要進行掃描,分析,編譯,執(zhí)行,即使是一模一樣的請求也需要也需要經(jīng)歷這4個步驟。然后就有了各種PHP加速器。
php的加速器是基于PHP的特殊擴展機制,如opcode緩存擴展,也可以將opcode緩存于php的共享內(nèi)存中,從而可以讓同一段代碼的后續(xù)重復(fù)執(zhí)行時跳過編譯階段以提高性能。由此也可以看出,這些加速器并非真正提高了opcode的運行速度,而僅是通過分析opcode后并將它們重新排列以達到快速執(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)境。項目地址: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)備一個模塊以實現(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í)行完成之后,安裝包的目錄下才會有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é)束時,會出現(xiàn)類似如下行:
Installing shared extensions:/usr/local/php-5.4/lib/php/extensions/no-debug-non-zts-201005252、編輯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中的幾項參數(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訪問配置頁面:
已加載xcache
用ab命令對php服務(wù)器進行壓測,命令格式如下
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啟動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以模塊的形式工作
php以模塊的形式與httpd整合,兩者只能運行在同一臺服務(wù)器上。
首先解決依賴關(guān)系,安裝libxml2-devel,bzip2-devel,libmcrypt-devel。若需要添加GD庫,libjpeg-turbo-devel,libpng-devel,freetype-devel,把這3個包也裝上,然后進行編譯。
[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,這項一定要加上,
#若果使用的是prefork,這項一定不能加
--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模塊已能夠正常工作.................^_^
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前標(biāo)題:php加速器(XCache),php以模塊的形式編譯-創(chuàng)新互聯(lián)
文章出自:http://www.rwnh.cn/article14/ijpde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、動態(tài)網(wǎng)站、Google、搜索引擎優(yōu)化、網(wǎng)站收錄、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容