標籤:
本片文章主要介紹windows下的php源碼的編譯。
1.1 編譯環境
軟體 |
環境 |
作業系統 |
Windows 7 專業版 32bit |
Visual studio |
2012 專業版 |
PHP |
5.5.2.1 安全執行緒版本 |
PHP-SDK |
下載 |
1.2 編譯步驟
該配置步驟參考PHP官方文檔。
1 解壓PHP-sdk檔案,分別放置於D:/PHP/PHP-sdk/;
2 在PHP-sdk下開啟VS2012 x86本機工具命令列提示(該命令列提示符包含了VS的編譯、連結等命令的path路徑),跳轉至PHP-sdk目錄下,輸入命令:
bin\phpsdk_setvars.bat
配置PHPsdk的包含路徑;
3 運行命令
bin\phpsdk_buildtree.bat phpdev
得到組建組態PHP編譯路徑,得到phpdev目錄,該目錄下得到VC6、VC8、VC9三個目錄,分別對應不同編譯器的編譯環境,目錄內容如下所示:
─vc9
├─x64
│ └─deps
│ ├─bin
│ ├─include
│ └─lib
└─x86
└─deps
├─bin
├─include
└─lib
4 由於沒有產生vs2012(VC11)的編譯目錄,因此可以將phpdev檔案夾中的vc9檔案夾複製為VC11.
5 將PHP源碼解壓至D:\php\php-sdk\phpdev\vc11\x86 目錄下。
6 運行命令
Buildconf.bat
7 該命令會掃描所有可用包的路徑,並得到設定檔configure.js。
8 運行命令
configure.bat
該命令可以配置需要安裝的擴充,以及SAPI命令。協助可使用命令:
configure.bat --help
官方給出的建議是
configure --disable-all --enable-cli
其中 cli (command-line interface)是命令列版本的PHP,可以設定 cgi、apache module等sapi介面產生。
9 運行命令
nmake [clean]
該命令類似與linux版本的make,是VS的產生工具。其Makefile程式是以mak結尾的檔案。Clean 參數可以清除組建檔案。
若無任何錯誤,則在源碼目錄的Release_TS目錄下產生了PHP.exe 可執行程式。該程式中包含了配置的所有模組,無需再手動添加dll庫。
1.3 可能的問題
- 沒有包含CL 、MC程式,需要重新開啟VS2012 x86本機工具命令列提示
- 未找到bison、re2c等程式。re2c是PHP5.5採用的詞法分析器,bison是gnu項目的一種文法分析器。該類程式在php-sdk/bin目錄下包含。需要重新運行命令
bin\phpsdk_setvars.bat
添加。
- 擴充 calendar中存在檔案編碼問題。將 phpsource/ext/calendar/ 目錄下jewish.c 檔案修改編碼為utf-8即可。(可以採用notepad++修改)
- 編譯php5apache2_4模組時,需要下載apache2.4,並需要配置include、lib、bin目錄。本文通過添加使用者的include、lib、bin(path路徑)目錄的方法配置。配置方法類似配置path路徑。
- 在配置mysqlnld擴充時,可能會出現zlib未包含的情況。可以下載zlib,編譯,並在deps的bin、include、lib目錄下分別放zlib的dll、zlib.h zcon.h、lib檔案。
php源碼的編譯