Windows下編譯安裝php擴充eAccelerator教程_win伺服器

來源:互聯網
上載者:User

eAccelerator是一個開源PHP加速器,用於最佳化程式,編碼器和動態內容緩衝。它通過在編譯狀態下對PHP指令碼進行緩衝以提高他們的效能,所以那些系統開銷在編譯時間幾乎可以被消除。它還能夠對指令碼進行最佳化以便加速它們的執行速度。利用eAccelerator可以減少伺服器的負載並提高PHP代碼的執行效率。

一、前期準備

1、下載php原代碼和二進位包
地址: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、 下載二進位包及設定檔,主要是為了省去編譯php的過程
2、 Php在win下分vc9、vc6等版本,下載前要選好,編譯後的擴充只能用於對應版本的php
3、 如果選vc6,vc11,則要修改config.w32.h中對應的vc資訊

二、解壓過程(本例選vc9)

1、 直接解壓php-5.3.26-src.zip,eaccelerator.zip到d:\
2、 複製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複製到eaccelerator檔案夾
5、 把eaccelerator檔案夾剪下到d:\php-5.3.26-src\ext

三、編譯過程(錯誤可能與eaccelerator版本有關)

1、 開啟eaccelerator項目..\win32\eAccelerator.sln,設定為Win32 Release。
2、 設定項目屬性:連結庫-常規,附加庫目錄補充“.\..”;
3、 開始編譯項目,可能發生以下錯誤:

複製代碼 代碼如下:

../../../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

解決:這是由於找不到宏報的錯誤。開啟這個檔案,添加typedef int socklen_t;

4、繼續編譯,可能發生以下錯誤:

複製代碼 代碼如下:

\ext\eaccelerator\ea_store.c(205): error C2143: syntax error : missing ';' before 'type'

\ext\eaccelerator\ea_store.c(207): error C2065: 'opline' : undeclared identifier


解決:這是由於項目該處沒用規範的C寫法,把“zend_op *opline, *end;”移到“ADDSIZE(size, from->last * sizeof(zend_op));”上面,也就是if 結構中的首部。

5、 繼續編譯,應該沒有其他錯誤了,完成後在Release目錄找到eAccelerator_ts.dll

四、結束語

1、 寫這篇文章,不僅說明如何在windows下編譯eAccelerator,同時也說明了在windows下可以直接編寫php擴充,無須藉助cygwin等等

2、 Php版本控制不是很理想,估計也很難避免的。4.0和5.0或者5.3都存在很大差別,而且同一版本中還有編譯器的差別,安全執行緒的差別,所以開發當中也要注意這個問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.