<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 在Microsoft Windows上編譯Apache 在你開始編譯Apache之前有許多重要問題需要注意。開始之前請先看看[在Microsoft Windows上使用Apache](#calibre_link-269) 。 ## 系統要求 編譯Apache需要正確安裝以下環境: * 磁盤空間 確保至少有50MB空閑磁盤空間可用。安裝以后Apache使用大約10MB磁盤空間,再加上會快速增長的日志和緩存文件需要的空間。 實際需要的空間大小會在相當大程度上取決于你選擇的配置以及使用的第三方模塊和庫。 * Microsoft Visual C++ 5.0 或更高版本 可以使用命令行工具,也可以在Visual Studio集成開發環境內編譯Apache。使用命令行工具要求環境變量中包含 `PATH`, `INCLUDE`, `LIB` 和其他一些變量,這些環境變量可以用`vcvars32`批處理文件來設置: ``` "c:\Program Files\DevStudio\VC\Bin\vcvars32.bat" ``` * Windows Platform SDK Visual C++ 5.0 編譯需要一套新版的Microsoft Windows Platform SDK來允許Apache的某些特性。 對于命令行編譯,用`setenv`批處理文件來設置環境變量: ``` "c:\Program Files\Platform SDK\setenv.bat" ``` 隨Visual C++ 6.0 及以后版本發布的Platform SDK文件足以滿足要求,所以新版本的用戶可以略過這個要求。 注意,需要新版的Windows Platform SDK來使得Apache支持的全部`mod_isapi`特性可用。沒有新版SDK的話,在 MSVC++ 5.0 下編譯Apache會出現某些`mod_isapi`特性將被禁止的警告。在[http://msdn.microsoft.com/downloads/sdks/platform/platform.asp](http://msdn.microsoft.com/downloads/sdks/platform/platform.asp)可以找到新版的Microsoft Winodws Platform SDK。 * awk工具(awk, gawk或類似軟件) 為了在編譯系統內安裝Apache ,用`awk.exe`工具修改了幾個文件。選擇awk是因為它很小,易于下載(與Perl或者WSH/VB相比),而且能夠完成生成文件的任務。Brian Kernighan的[http://cm.bell-labs.com/cm/cs/who/bwk/](http://cm.bell-labs.com/cm/cs/who/bwk/)站點有一個編譯好的本地Win32代碼版本,這個文件[http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe](http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe)你必須將它名字保存為`awk.exe`而不是`awk95.exe` 。 注意Developer Studio集成開發環境只能在Tools - Options菜單中的Directories頁上列出的可執行文件搜索路徑列表中查找 `awk.exe`(對于Developer Studio 7.0 是在the Projects - VC++ Directories 面板)。 把`awk.exe`的路徑加入到列表中,并按要求加入到系統`PATH`環境變量里。如果你用的是Cygwin ([http://www.cygwin.com/](http://www.cygwin.com/))需要注意,awk工具的文件名是`gawk.exe`而文件`awk.exe`實際上是`gawk.exe`的一個符號連接。 而Windows命令行解釋程序不認識符號連接,因此編譯二進制安裝文件會失敗。可行的變通辦法是從cygwin安裝目錄刪除文件`awk.exe`并把`gawk.exe`改名為`awk.exe` 。 * [可選] OpenSSL庫(因為`mod_ssl`和`ab.exe`用到ssl支持) **警告:在整個世界范圍使用和發布高強度密碼體系與專利知識產權都有相當大的限制和嚴格的禁令。**OpenSSL包括了在美國及其他國家和地區受到出口條例、國內法律以及受專利保護的知識產權所限制的高強度密碼體系。對于OpenSSL項目提供的代碼,不管是Apache軟件基金會還是OpenSSL項目都不能提供關于擁有、使用和發布該代碼的法律建議。**向你自己的法律顧問咨詢,你需要為你自己的行為負責。** 為了編譯 `mod_ssl`或abs項目(`ab.exe`用到SSL支持),OpenSSL必須安裝到`srclib`目錄下名為`openssl`的子目錄中,openSSL可以從[http://www.openssl.org/source/](http://www.openssl.org/source/)獲得。要是準備既編譯`release`版本又編譯`debug`版本,而且要禁止 0.9.7 版中受專利保護的特性,你應該使用下列編譯命令: ``` perl Configure VC-WIN32 perl util\mkfiles.pl &gt;MINFO perl util\mk1mf.pl dll no-asm no-mdc2 no-rc5 no-idea VC-WIN32 &gt;makefile perl util\mk1mf.pl dll debug no-asm no-mdc2 no-rc5 no-idea VC-WIN32 &gt;makefile.dbg perl util\mkdef.pl 32 libeay no-asm no-mdc2 no-rc5 no-idea &gt;ms\libeay32.def perl util\mkdef.pl 32 ssleay no-asm no-mdc2 no-rc5 no-idea &gt;ms\ssleay32.def nmake nmake -f makefile.dbg ``` * [可選] zlib源碼 (用于`mod_deflate`) Zlib必須安裝到`srclib`目錄下的`zlib`子目錄,但是你不需要去編譯那些源碼。編譯系統會直接把壓縮源碼編譯到`mod_deflate`模塊中去。 Zlib可以從[http://www.gzip.org/zlib/](http://www.gzip.org/zlib/)獲得 -- `mod_deflate`已經經過驗證可以使用版本 1.1.4 正確編譯。 ## 命令行編譯 首先,將Apache源碼包解壓到合適的目錄。打開一個命令提示符窗口并用`cd`切換到那個目錄。 主要的Apache make文件命令都包含在文件`Makefile.win`中。要在Windows NT上編譯Apache ,只需要簡單地使用下列命令之一就可以編譯`release`或`debug`版本,分別是: ``` nmake /f Makefile.win _apacher nmake /f Makefile.win _apached ``` 兩條命令都可以編譯Apache 。后者會在編譯結果文件中包含調試信息,使發現bugs和跟蹤問題更容易。 ## Developer Studio集成開發環境的工作區編譯 Apache也能夠用VC++的Visual Studio集成開發環境編譯。為了簡化過程,提供了一個Visual Studio工作區文件:`Apache.dsw` 。 它闡述了完整的Apache二進制發行版需要的全部`.dsp`項目列表。 它包含了項目之間的依存關系來保證編譯按合適的順序進行。 打開 `Apache.dsw` 工作區文件,選擇 `InstallBin` (根據需要選擇編譯`Release` 或者`Debug` 版本) 為活動項目。`InstallBin`會引發編譯相關的項目并調用 `Makefile.win` 移動編譯后的可執行文件和動態鏈接庫。你可以改變`InstallBin`項目的設置來定制 `INSTDIR=` 選項,修改設置中General頁里面的Build Command line條目。`INSTDIR`的缺省值是 `/Apache2`目錄。如果你只是想要測試編譯(不安裝),就用 `BuildBin`項目代替。 `.dsp`項目文件使用Visual C++ 6.0格式發行。Visual C++ 5.0 (97)也能識別這種格式。而Visual C++ 7.0 (.net)必須把`Apache.dsw`和`.dsp` 文件轉換成`Apache.sln`和`.msproj`文件, 如果有任何一個`.dsp`源文件改變了,必須重新轉換相應的`.msproj`文件! 這很容易,只需要在VC++ 7.0 集成開發環境中重新打開 `Apache.dsw`文件。 Visual C++ 7.0 (.net)的用戶還應該使用Build 菜單下的Configuration Manager對話框來不選中模塊abs ,`mod_ssl`和`mod_deflate` , 對編譯`Debug`和`Release`版本都是。 僅當`srclib`目錄下至少存在`openssl`或者`zlib`子目錄二者之一, 才能調用`nmake`或者明白地使用`BinBuild`目標直接從集成開發環境來編譯這幾個模塊。 導出的那些`.mak`文件造成很大的爭議,但對于 Visual C++ 5.0 的用戶它們是編譯`mod_ssl` 、abs(帶SSL支持的ab)和`mod_deflate`是必需的。 VC++ 7.0 (.net)的用戶也能從中受益,用`nmake`編譯比用 `binenv`要快。 從VC++ 5.0 或 6.0 集成開發環境編譯所有項目,再使用Project菜單 - Export導出所有make文件。 為了創建全部自動產生的動態目標你必須首先編譯項目,以便互相之間的依存關系可以被正確解析。運行下面命令修正路徑使之能編譯到任何位置: ``` perl srclib\apr\build\fixwin32mak.pl ``` 你必須在`httpd`源碼樹的_頂層_目錄輸入這個命令。 當前目錄及其子目錄下所有的`.mak` 和 `.dep`項目文件都將被改正,并且時間戳被調節到與`.dsp`一致。 如果你貢獻修正項目文件的補丁,我們必須以Visual Studio 6.0 格式來確認項目文件。 改動應該簡單而且只帶有最少的編譯和連接標記以便能夠被從VC++ 5.0 到 7.0 的所有環境識別。 ## 項目組件 `Apache.dsw`工作區文件和`makefile.win` `nmake`腳本都是以下列順序編譯Apache服務器的`.dsp`項目文件: 1. `srclib\apr\apr.dsp` 2. `srclib\apr\libapr.dsp` 3. `srclib\apr-util\uri\gen_uri_delims.dsp` 4. `srclib\apr-util\xml\expat\lib\xml.dsp` 5. `srclib\apr-util\aprutil.dsp` 6. `srclib\apr-util\libaprutil.dsp` 7. `srclib\pcre\dftables.dsp` 8. `srclib\pcre\pcre.dsp` 9. `srclib\pcre\pcreposix.dsp` 10. `server\gen_test_char.dsp` 11. `libhttpd.dsp` 12. `Apache.dsp` 此外,`modules\`子目錄樹包含了大多數模塊的項目文件。 `support\`子目錄包含了一些附加程序的項目文件,它們運行時不是Apache的一部分, 但是管理員要使用它們來測試Apache和維護密碼與日志文件。 Windows平臺特有的支持項目在`support\win32\`目錄下。 1. `support\ab.dsp` 2. `support\htdigest.dsp` 3. `support\htpasswd.dsp` 4. `support\logresolve.dsp` 5. `support\rotatelogs.dsp` 6. `support\win32\ApacheMonitor.dsp` 7. `support\win32\wintty.dsp` 一旦編譯了Apache,它需要被安裝在服務器根目錄,缺省是在同一個盤符下的`\Apache2`目錄。 要自動編譯和安裝所有文件到指定的目錄_dir_ ,使用下列`nmake`命令之一: ``` nmake /f Makefile.win installr INSTDIR=_dir_ nmake /f Makefile.win installd INSTDIR=_dir_ ``` `INSTDIR`的_dir_參數給出了安裝目錄;如果要安裝到`\Apache2`目錄可以省略。 安裝結果如下列: * `_dir_\bin\Apache.exe` - Apache可執行文件 * `_dir_\bin\ApacheMonitor.exe` - 服務監視器托盤圖表工具 * `_dir_\bin\htdigest.exe` - 摘要授權密碼文件工具(Digest auth password file utility) * `_dir_\bin\htdbm.exe` - SDBM授權數據庫密碼文件工具(SDBM auth database password file utility) * `_dir_\bin\htpasswd.exe` - 基本授權密碼文件工具(Basic auth password file utility) * `_dir_\bin\logresolve.exe` - 日志文件dns名稱查找工具 * `_dir_\bin\rotatelogs.exe` - 日志文件遍歷工具 * `_dir_\bin\wintty.exe` - 控制臺窗口工具 * `_dir_\bin\libapr.dll` - Apache可移植運行時共享庫 * `_dir_\bin\libaprutil.dll` - Apache運行時共享庫工具 * `_dir_\bin\libhttpd.dll` - Apache核心庫 * `_dir_\modules\mod_*.so` - Apache可裝載模塊 * `_dir_\conf` - 配置目錄 * `_dir_\logs` - 空日志目錄 * `_dir_\include` - C語言頭文件 * `_dir_\lib` - 連接庫文件 ### 關于從開發樹編譯Apache的警告 在每次發布`發行`版本之間,只有`.dsp`文件被維護。 考慮到會對審閱者的時間造成巨大浪費,并不重新產生`.mak`文件。 因此,你不能依靠上述的`NMAKE`命令來編譯修訂過的`.dsp`項目文件,除非你自己從項目中導出全部`.mak`文件。如果你在Microsoft Developer Studio環境中編譯這樣做是不必要的。同時注意在導出make文件之前編譯`BuildBin`目標項目是非常值得的(或者用命令行目標 `_apacher` 或 `_apached`)。 許多文件在編譯過程中自動產生。只有一次完全編譯才提供為正確的編譯行為編譯正確的依存關系樹所需要的全部依賴文件。 為創建供發布的`.mak`文件,一定要檢查`.mak` (或`.dep`)中Platform SDK和其他頭文件的依存性。 `DevStudio\SharedIDE\bin\`(VC5)或者`DevStudio\Common\MSDev98\bin\`(VC6) 目錄包含了`sysincl.dat`文件,其中列出了所有的例外情況來告訴VC++創建依存關系時不掃描列表中的文件, 更新此文件以包含這些頭文件 (同時包括正斜杠和反斜杠路徑,比如`sys/time.h`和`sys\time.h`要同時列出)。 在發布的`.mak`文件中包含一個本地安裝路徑將使編譯完全失敗,所以不要忘了運行`srclib/apr/build/fixwin32mak.pl`來修正`.mak`文件中的絕對路徑。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看