從 Cygnus的鏡像站獲取 Cygwin工具箱。你要找的是 cygwin.exe 文件。他提供了大多數流行的 GNU 工具用於編譯過程- r/ ?+ S; ^7 g' _+ ?/ x
; v3 L, @ k! Q) p+ D' V0 v2 P& E$ Z從 php的網站,下載其他的編譯需要的工具,
& E! B* q; ^7 T' O& }- f* Y# V. d0 h; }: X# _
獲得 PHP 使用的用於 DNS 名字解析的源代碼。替換 win32build.zip 裡的 resolv.lib 文件/ L8 ~# a& R1 W9 b. e* j/ M( s5 M
4 b* K. r8 n3 y S8 C6 ~9 X
如果你沒有解壓縮工具,你需要下載一個。 InfoZip 有一個免費的!
! f; b* e$ p" @6 v$ T" y3 {& T _8 q) w% D, @# _
最後,你需要 PHP 的源代碼本身。你可以使用匿名 CVS 獲得最新的開發版本。如果你得到的是一個 snapshot 或者一個源代碼 tarball, 你不僅需要展開它, 而且在 Microsoft Visual C++ 可以處理所有東西前,你需要轉換在 *.dsp 和 *.dws 文件裡的空的換行符為回車換行符號4 e0 g. `9 i T( Z% K6 \! ~
9 A# z8 D* l: E! |* z) l/ R
注意:放置 Zend 和 TSTM 目錄在 php4 目錄裡面,使得工程在建立期間可以找到他們
. a* q$ B+ O) _( N9 y4 ^( L4 U5 I' {* L$ T
把他們放在一起,按照下面的步驟來安裝你選擇的展開系統
0 z8 c/ L. N% b" i9 H0 b2 }0 @. b8 i' L: t& y' R( F
運行 cygwin.exe,按照安裝步驟進行。如果你選擇安裝到一個不是 C:cygnus 的路徑,必須通過設置 cygwin 環境變量通知建立程序。在 Windows 95/98 下,設置環境變量可以通過在 Autoexec.bat 裡加入一行來做到!在 Window NT,打開 我的電腦 => 控制台 => 系統 然後選擇化鏡變量標簽
- H# \8 Q1 R, k* b, Q# u+ t W3 [! y" Y! F/ r- {6 }8 C
警告:
! q8 r; q7 E: V8 W建立一個 Cygwin使用的臨時目錄。否則許多命令(特別是 bison)會失敗。在 Windows 95/98 下,建立目錄 mkdir c:tmp, 在 Windows NT 下 mkdir %SystemDrive%tmp。
+ y- W( Q5 m' S7 p: o3 f: L; Q6 j$ P6 g/ e5 b5 _* Z
建立一個目錄,展開 win32build.zip 到裡面
7 ~; v0 a: E6 t+ s H4 P0 I+ k7 f1 x7 ?
運行 Microsoft Visual C++,從菜單裡選擇 Tools => Option. 在對話框裡,選擇 Directories(路徑) 標籤.向下移動到 Executables(可執行), Includes(包含文件), 和 Library(庫文件) 文件處,確認 cygwinbin,win32buildinclude,和win32buildlib 分別在每個列表裡面。(要增加一個入口,先則列表尾部的空行,然後敲入).典型的結果如下:/ G9 b1 X* j9 s6 i7 F0 {
c:cygnusbin
+ O6 j5 v) d) z6 ac:php-win32buildinclude& t' m4 q" Z& R% c' I* K- I
c:php-win32buildlib
' N s8 b* P( ]1 b按 OK 键。退出 Visual C++/ K% V# \' G2 _/ Y* ~; X0 v
- y. K7 j% C* K5 c0 @. o建立另外一個目錄,展開 blindlib_w32.zip 到裡面。確定是否你想要調試符號。建立恰當的配置。
, Y' |- \$ ]5 i$ V$ s% L! S
& m/ }" c, z) h1 N0 ^( Q7 u9 S8 ^$ l% ]& x
對於 GUI 用戶,運行 VC++, 選擇 File => open Workspace, 然後選擇 bindlib. 然後選擇 Build=>Set Active Configuration ,選擇想要的配置。最後選擇 Build => Rebuild All.1 W: s- E+ a5 m* |; G$ M c* J
& d5 k' A3 E- Z F! z* ?: P% Y
# I) V& |) e4 J. m- X0 J6 F對於命令行用戶,確認你已經註冊 C++環境變量或者已經運行了 vcvars.bat.然後運行下面的任何一個
6 \( I6 }2 F) {2 } Qmsdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
# C8 ^6 J i! W, H! L0 V2 Z) Umsdev bindlib.dsp /MAKE "bindlib - Win32 Release"0 J! z" j. J# Q1 e: `- z
* \# S4 z- ]: Y
這時,你獲得一個可用的 resolv.lib 在你的 Debug 或者 Release 子目錄下面。複製這個文件到你的 win32buildlib 目錄,覆蓋那裡的同名的文件。
5 N) C9 j3 J/ f8 H- g/ }" k
1 _( v/ K! t7 T' }! p* _# e編譯
$ o9 y% g6 ^- X1 S2 p, |; p$ d3 l5 s- `( d5 k! s
開始最好建立獨立/CGI版本
/ E/ i3 H6 h" g2 x% U$ v
# H0 s( u$ B# d* i) n0 L) ]對於 GUI 用戶,運行 VC++,選擇 File => Open Workspace 選擇 php4ts,然後選擇 Build => Set Active Configuration, 選擇想要的配置。最後選擇 Build => Rebuild All.. E' r, i3 @9 C& ?- H
( ]. Z/ P, L$ _' Y, ^
對於命令行用戶,確認你已經註冊 C++環境變量或者已經運行了 vcvars.bat.然後運行下面的任何一個4 m) b3 c6 e+ |3 b
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
: \+ W8 ~+ ^ {# z5 c- [( t! _msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
5 R1 j) A4 I5 K N1 G' S3 P! {
8 R# D+ Y+ b$ U4 E這時,你可以得到可用的 php.exe 在你的 Debug_TS 或者 Release_TS 子目錄下面 u4 @0 k1 `" I/ T
/ `! e+ m `0 c對於 phpisapi.dsp 重複上面的步驟(在 sapiisapi 裡面可以找到).建立 Microsoft IIS 的 isapi 程序
9 c/ a6 l) c4 R' C
$ {3 p2 F' f, y$ x8 h! k額外的
c. d" _. P. YCreate a Zend account
: W1 d o" T ^5 x' U6 V4 ]1 v點擊首頁右上邊的導航欄裡的 Downloads > Zend Guard > try |