php源碼的編譯

本片文章主要介紹windows下的php源碼的編譯。php

1.1 編譯環境

軟件mysql

環境linux

操做系統sql

Windows 7 專業版 32bitapache

Visual studiowindows

2012 專業版api

PHP安全

5.5.2.1 線程安全版本工具

PHP-SDKui

下載

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目錄,該目錄下獲得VC六、VC八、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 可能的問題

  1. 沒有包含CL 、MC程序,須要從新打開VS2012 x86本機工具命令行提示
  2. 未找到bison、re2c等程序。re2c是PHP5.5採用的詞法分析器,bison是gnu項目的一種語法分析器。該類程序在php-sdk/bin目錄下包含。須要從新運行命令
bin\phpsdk_setvars.bat

          添加。

  1. 擴展 calendar中存在文件編碼問題。將 phpsource/ext/calendar/ 目錄下jewish.c 文件修改編碼爲utf-8便可。(能夠採用notepad++修改)
  2. 編譯php5apache2_4模塊時,須要下載apache2.4,並須要配置include、lib、bin目錄。本文經過添加用戶的include、lib、bin(path路徑)目錄的方法配置。配置方法相似配置path路徑。
  3. 在配置mysqlnld擴展時,可能會出現zlib未包含的狀況。能夠下載zlib,編譯,並在deps的bin、include、lib目錄下分別放zlib的dll、zlib.h zcon.h、lib文件。
相關文章
相關標籤/搜索