php源碼的編譯

來源:互聯網
上載者:User

標籤:

本片文章主要介紹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 可能的問題
  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檔案。

php源碼的編譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.