在Win32平臺上編譯 Apache (2.0.x - 2.2.x) + SSL
1 介紹
Apache HTTP Server 是一款優秀的開放源碼軟件,從1996年以來已經被廣泛地應用于多種操作系統。據Netcraft.com 2006年3月的統計,目前Internet上68.70%網站用的是Apache。
OpenSSL 是一個穩定的而且功能齊全的開放源碼工具包,它實現了安全套接字層 (SSL v2/v3)和傳輸層層安全 (TLS v1)協議,也是一個強大的通用加密工具庫。
不幸的是 Apache HTTP Server 官方提供的安裝包目前不包含SSL功能,因為美國政府對“strong crypto redistribution”有意見。但是愛好者們可以自己DIY。
本人從03年起,編譯了Apache (2.0.x - 2.2.x)和OpenSSL (0.9.6i - 0.9.8a)幾乎每個版本。
2 編譯材料清單
2.1 編譯OpenSSL所需材料
- OpenSSL源碼
- Perl for Win32
- 以下C編譯器之一:
- Visual C++ (我用這個)
- Borland C
- GNU C (Cygwin or MinGW)
- 以下匯編器之一:
- Microsoft MASM (aka "ml")
- Free Netwide Assembler NASM (我用這個)
2.2 編譯Apache所需材料
- Apache源碼
- AWK Utility 這個工具的作者Brian Kernighan發明了C語言,還寫了幾本牛書。
- bison, flex, sed
- MS Platform SDK (可選,如果用VC++ 6.0編譯Apache 2.2.0必須)
2.3 環境變量
- 把以下文件的路徑放到PATH上: perl.exe, awk.exe, nasmw.exe, bison.exe, flex.exe, sed.exe, nmake.exe, mspdb60.dll。
- 在INCLUDE和LIB里把MS Platform SDK放到VC 6.0前面。
3 編譯OpenSSL
- 把OpenSSL源碼解開到一個目錄,比如 c:\openssl
- 設置Perl
c:\openssl>perl Configure VC-WIN32
- 生成Makefiles
c:\openssl>ms\do_nasm
- 用VC++編譯
nmake -f ms\ntdll.mak
- 測試
c:\openssl>cd out32dll
c:\openssl\out32dll>..\ms\test
4 編譯Apache
- 把Apache源碼解開到一個目錄,比如 c:\httpd-2.2.0
- 復制OpenSSL庫
c:\httpd-2.2.0>mkdir srclib\openssl
c:\httpd-2.2.0>xcopy/e openssl srclib\openssl - 編譯
nmake -f makefile.win SERVERNAME=myDomainName PORT=myPort
INSTDIR=myInstallDir installr - 刪除多余文件 (可選)。以下語言文件一般可以刪除:*.de *.es *.euc-jp *.euc-kr *.fr *.ja *.jis *.ko *.koi8-r *.pt-br。如果不想調試*.pdb文件也可刪除。
posted on 2006-05-06 19:07 Vincent.Chen 閱讀(3798) 評論(0) 編輯 收藏 所屬分類: 雜文