Windows下編譯安裝php擴(kuò)展eAccelerator教程
eAccelerator是一個(gè)開源PHP加速器,用于優(yōu)化程序,編碼器和動(dòng)態(tài)內(nèi)容緩存。它通過在編譯狀態(tài)下對(duì)PHP腳本進(jìn)行緩存以提高他們的性能,所以那些系統(tǒng)開銷在編譯時(shí)幾乎可以被消除。它還能夠?qū)δ_本進(jìn)行優(yōu)化以便加速它們的執(zhí)行速度。利用eAccelerator可以減少服務(wù)器的負(fù)載并提高PHP代碼的執(zhí)行效率。
一、前期準(zhǔn)備
1、下載php原代碼和二進(jìn)制包
地址:http://windows.php.net/download/
2、下載eaccelerator(選擇zip包)
地址:http://eaccelerator.net/
3、php配置文件config.w32.h
地址:http://xiazai.jb51.net/201501/other/php_w32_config.rar
Ps:
1、 下載二進(jìn)制包及配置文件,主要是為了省去編譯php的過程
2、 Php在win下分vc9、vc6等版本,下載前要選好,編譯后的擴(kuò)展只能用于對(duì)應(yīng)版本的php
3、 如果選vc6,vc11,則要修改config.w32.h中對(duì)應(yīng)的vc信息
二、解壓過程(本例選vc9)
1、 直接解壓php-5.3.26-src.zip,eaccelerator.zip到d:\
2、 復(fù)制config.w32.h到d:\php-5.3.26-src\main目錄
3、 解壓php-5.3.26-Win32-VC9-x86.zip需要解壓到d:\php目錄
4、 把d:\php\dev\php5ts.lib復(fù)制到eaccelerator文件夾
5、 把eaccelerator文件夾剪切到d:\php-5.3.26-src\ext
三、編譯過程(錯(cuò)誤可能與eaccelerator版本有關(guān))
1、 打開eaccelerator項(xiàng)目..\win32\eAccelerator.sln,設(shè)置為Win32 Release。
2、 配置項(xiàng)目屬性:鏈接庫-常規(guī),附加庫目錄補(bǔ)充“.\..”;
3、 開始編譯項(xiàng)目,可能發(fā)生以下錯(cuò)誤:
../../../main\streams/php_stream_transport.h(85): error C2143: syntax error : missing ')' before '*'
../../../main\streams/php_stream_transport.h(85): error C2081: 'socklen_t' : name in formal parameter list illegal
解決:這是由于找不到宏報(bào)的錯(cuò)誤。打開這個(gè)文件,添加typedef int socklen_t;
4、繼續(xù)編譯,可能發(fā)生以下錯(cuò)誤:
\ext\eaccelerator\ea_store.c(205): error C2143: syntax error : missing ';' before 'type'
\ext\eaccelerator\ea_store.c(207): error C2065: 'opline' : undeclared identifier
解決:這是由于項(xiàng)目該處沒用規(guī)范的C寫法,把“zend_op *opline, *end;”移到“ADDSIZE(size, from->last * sizeof(zend_op));”上面,也就是if 結(jié)構(gòu)中的首部。
5、 繼續(xù)編譯,應(yīng)該沒有其他錯(cuò)誤了,完成后在Release目錄找到eAccelerator_ts.dll
四、結(jié)束語
1、 寫這篇文章,不僅說明如何在windows下編譯eAccelerator,同時(shí)也說明了在windows下可以直接編寫php擴(kuò)展,無須借助cygwin等等
2、 Php版本控制不是很理想,估計(jì)也很難避免的。4.0和5.0或者5.3都存在很大差別,而且同一版本中還有編譯器的差別,線程安全的差別,所以開發(fā)當(dāng)中也要注意這個(gè)問題。
- Linux(CentOS)下PHP擴(kuò)展PDO編譯安裝的方法
- 騰訊CMEM的PHP擴(kuò)展編譯安裝方法
- Linux下編譯安裝php libevent擴(kuò)展實(shí)例
- Linux下手動(dòng)編譯安裝PHP擴(kuò)展的例子分享
- PHP的swoole擴(kuò)展安裝方法詳細(xì)教程
- windows下安裝php5.2.*,php5.3.*,php5.4.*版本的memcache擴(kuò)展
- Windows下Memcache的安裝及PHP擴(kuò)展配置方法
- PHP5.3以上版本安裝ZendOptimizer擴(kuò)展
- php編譯安裝php-amq擴(kuò)展簡(jiǎn)明教程
相關(guān)文章
win2003 jsp運(yùn)行環(huán)境架設(shè)心得(jdk+tomcat)
這幾天一直研究架設(shè)JSP服務(wù)器,之前一切都是默認(rèn)安裝,能成功;能看到一只貓,可真正要上線時(shí),要實(shí)現(xiàn)多站點(diǎn)就一直404不行;不知道百度跟google將近一天都不行,看了N多網(wǎng)頁嘗試不行2012-12-12
IIS5.1安裝配置圖文教程 輕松打造ASP運(yùn)行環(huán)境
制作動(dòng)態(tài)網(wǎng)頁就需要進(jìn)行環(huán)境配置,一般用微軟的IIS,但是默認(rèn)安裝情況下IIS是沒有被安裝的,所以使用的時(shí)候需要進(jìn)行安裝配置2012-04-04
Windows server 2016 搭建DHCP服務(wù)的圖文教程
在Windows Server 2016中啟用DHCP服務(wù)的主要作用和目的,是有利于管理員在系統(tǒng)升級(jí)后便于管理HA,本文主要介紹了Windows server 2016搭建DHCP以及DHCP的安裝方法,感興趣的可以了解一下2023-09-09
windows 7架設(shè)OpenSSH服務(wù)器實(shí)踐
這篇文章主要介紹了windows 7架設(shè)OpenSSH服務(wù)器實(shí)踐,需要的朋友可以參考下2016-01-01
IIS7.5使用web.config設(shè)置偽靜態(tài)的二種方法
IIS7.5使用web.config設(shè)置偽靜態(tài)方法2013-11-11
windows下jsp+mysql網(wǎng)站環(huán)境配置方法
為參考網(wǎng)上的資料安裝jsp網(wǎng)站的總結(jié).2008-09-09
Microsoft Windows 2008 Server R2 iis7.5上傳文件限制200K更改
這篇文章主要介紹了Microsoft Windows 2008 Server R2上傳文件限制200K更改,需要的朋友可以參考下2015-10-10
windows2003 IIS6配置PHP和MySql數(shù)據(jù)庫
首先保證window2003 SP2系統(tǒng)和IIS6,以及下載好PHP5壓縮包和MySql5版本安裝包2009-06-06
Windows Server 2012 Server Backup之?dāng)?shù)據(jù)備份與恢
Windows Server Backup是系統(tǒng)自帶的備份和恢復(fù)組件,和Windows Server 2003中的NTbackup類似。相對(duì)于其他第三方備份軟件,Windows Server Backup由于是系統(tǒng)自帶組件,不需要額外購買授權(quán),從而減少IT開支2023-06-06
解決Windows 2003“在系統(tǒng)啟動(dòng)時(shí)至少有一個(gè)服務(wù)或驅(qū)動(dòng)程序產(chǎn)生錯(cuò)誤”
每次裝Windows 2003用幾遍系統(tǒng)啟動(dòng)時(shí)就會(huì)彈出“在系統(tǒng)啟動(dòng)時(shí)至少有一個(gè)服務(wù)或驅(qū)動(dòng)程序產(chǎn)生錯(cuò)誤“的錯(cuò)誤對(duì)話框。2010-04-04

