返回列表 回覆 發帖

在Windows下面從源代碼編譯PHP的步驟

Cygnus的鏡像站獲取 Cygwin工具箱。你要找的是 cygwin.exe 文件。他提供了大多數流行的 GNU 工具用於編譯過程
* }# _( k/ ^% V+ F
' E& Q' h' I! Z7 Q6 Mphp的網站,下載其他的編譯需要的工具,
0 A/ B" ^' {* b- T2 y2 h
0 a  X8 z4 E. _0 o/ {, q/ S獲得 PHP 使用的用於 DNS 名字解析的源代碼。替換 win32build.zip 裡的 resolv.lib 文件9 n5 m3 |, H9 D6 Y* ?

# ^: E9 {0 T9 h! ]( f5 x如果你沒有解壓縮工具,你需要下載一個。 InfoZip 有一個免費的!
1 B6 b7 y9 g9 x( R1 h. Y9 ]
1 z, r7 o$ a- r7 ?- m1 u! q最後,你需要 PHP 的源代碼本身。你可以使用匿名 CVS 獲得最新的開發版本。如果你得到的是一個 snapshot 或者一個源代碼 tarball, 你不僅需要展開它, 而且在 Microsoft Visual C++ 可以處理所有東西前,你需要轉換在 *.dsp 和 *.dws 文件裡的空的換行符為回車換行符號7 Q& c6 z3 O- f) N$ h1 T% s: |, [
& e( s6 G" F! Y3 z$ H6 X9 a& t
注意:放置 Zend 和 TSTM 目錄在 php4 目錄裡面,使得工程在建立期間可以找到他們8 w0 d+ u0 I& Y) e$ H+ P# a5 Z

0 I# i+ C1 X- i! }" A+ B$ M把他們放在一起,按照下面的步驟來安裝你選擇的展開系統# ^  x& z8 G3 z2 |$ [' p' w

# h: \8 _. H& y$ H運行 cygwin.exe,按照安裝步驟進行。如果你選擇安裝到一個不是 C:cygnus 的路徑,必須通過設置 cygwin 環境變量通知建立程序。在 Windows 95/98 下,設置環境變量可以通過在 Autoexec.bat 裡加入一行來做到!在 Window NT,打開 我的電腦 => 控制台 => 系統 然後選擇化鏡變量標簽# B% ^- n/ H. y3 q; X

+ B+ E, s* Z. W+ z警告:
& w, @: b+ v, ^1 C2 O建立一個 Cygwin使用的臨時目錄。否則許多命令(特別是 bison)會失敗。在 Windows 95/98 下,建立目錄 mkdir c:tmp, 在 Windows NT 下 mkdir %SystemDrive%tmp。
  N0 `( x0 P3 J3 i& a
1 x3 n6 h2 n3 H$ ?* \) w建立一個目錄,展開 win32build.zip 到裡面; i0 m# w1 i- o# s% S9 f
  F* n3 G' @1 S6 G2 v  K
運行 Microsoft Visual C++,從菜單裡選擇 Tools => Option. 在對話框裡,選擇 Directories(路徑) 標籤.向下移動到 Executables(可執行), Includes(包含文件), 和 Library(庫文件) 文件處,確認 cygwinbin,win32buildinclude,和win32buildlib 分別在每個列表裡面。(要增加一個入口,先則列表尾部的空行,然後敲入).典型的結果如下:$ m+ t. r8 b: g7 F& v  @
c:cygnusbin/ E7 ?# C5 s) [) D& u! `
c:php-win32buildinclude4 ]5 B8 V- Z$ |/ g
c:php-win32buildlib) q  a$ g1 d& y* b$ L$ T, p; M
按 OK 键。退出 Visual C++
& b5 }( a/ H% ~' k" B' T0 s! v( D- y0 L! n, o3 Y, g. }4 \
建立另外一個目錄,展開 blindlib_w32.zip 到裡面。確定是否你想要調試符號。建立恰當的配置。. T* w# H2 A" l, ?: v4 ?: Q( z  w

0 l# G( k# i0 e% ^/ \' f7 X' T6 K
對於 GUI 用戶,運行 VC++, 選擇 File => open Workspace, 然後選擇 bindlib. 然後選擇 Build=>Set Active Configuration ,選擇想要的配置。最後選擇 Build => Rebuild All.
* {- b; W! l5 D- o
' `( [$ E0 W' a. u8 P# e
  w( A" q% C" i" S7 o7 G對於命令行用戶,確認你已經註冊 C++環境變量或者已經運行了 vcvars.bat.然後運行下面的任何一個
0 k1 \1 R4 D( Hmsdev bindlib.dsp /MAKE "bindlib - Win32 Debug": K% H# s0 N0 g0 O# C/ O) A
msdev bindlib.dsp /MAKE "bindlib - Win32 Release"! U0 D" f7 y3 l+ b. k" e& S  Q
  S& K3 a' V! v( f
這時,你獲得一個可用的 resolv.lib 在你的 Debug 或者 Release 子目錄下面。複製這個文件到你的 win32buildlib 目錄,覆蓋那裡的同名的文件。& L- ^0 o" [& J& k/ R
6 u* V$ f+ c, {% e0 c$ |4 [  D
編譯- P9 g7 ?% r, P2 z& E  `+ q! q' u; r( b

% b% J, T, W$ {  s+ l: T) w* S開始最好建立獨立/CGI版本   o7 m: z% {) j! X

. R8 `; N& t2 l: z5 s對於 GUI 用戶,運行 VC++,選擇 File => Open Workspace 選擇 php4ts,然後選擇 Build => Set Active Configuration, 選擇想要的配置。最後選擇 Build => Rebuild All.
0 @5 s! n7 J1 A# M& K$ y( d
1 I; x, Y$ q* Z. U對於命令行用戶,確認你已經註冊 C++環境變量或者已經運行了 vcvars.bat.然後運行下面的任何一個# s6 `2 A$ o" q" U+ |9 `( f, l
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
/ c' w. x) u/ x. v* B7 rmsdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"( Z. u2 I; Y$ Q5 N% f# Z6 C- P5 ^

6 C8 Q! n% T( d+ u1 f# m3 m這時,你可以得到可用的 php.exe 在你的 Debug_TS 或者 Release_TS 子目錄下面
2 ~+ B+ U! Z+ }, u. h$ p
, ^+ t8 `' R7 r* z! O2 ^9 f" Q對於 phpisapi.dsp 重複上面的步驟(在 sapiisapi 裡面可以找到).建立 Microsoft IIS 的 isapi 程序
9 r. R( m( z( r. N' j" T) e, p0 P8 w0 G/ ]# [; L
額外的
2 h6 r. f  h0 c* K( k$ f% b0 pCreate a Zend account " G8 Y" J6 K  {  r
點擊首頁右上邊的導航欄裡的 Downloads  > Zend Guard   > try
返回列表