含まれているVisual Studioプロジェクトファイルを使用してhttpdをビルドする
要件
Apacheをコンパイルするには、次の環境が適切にインストールされている必要があります:
-
ディスクの空き容量
ディスクの空き容量が200MB以上あることを確認してください。 インストール後、Apacheは約80MBのディスク容量と、ログファイルとキャッシュファイル用の容量を必要とします。 実際のディスク容量の要件は、特にOpenSSLがビルドされている場合、選択した構成とサードパーティのモジュールまたはライブラリによって大幅に異なります。 多くのファイルはテキストであり、非常に簡単に圧縮されるため、NTFSファイルシステムの圧縮はこれらの要件を半分に削減します。
-
適切なパッチ
httpdバイナリは、リリースされたコードがビルド可能でデバッグ可能であることを保証するサードパーティのパッケージへのいくつかのパッチの助けを借りてビルドされています。 これらのパッチはhttp://www.apache.org/dist/httpd/binaries/win32/patches_applied/から入手可能で配布されており、”公式の”ASF分散バイナリと同じ結果を得るために適用することが推奨されています。
-
Microsoft Visual C++6.0(Visual Studio97)以降。
Apacheは、コマンドラインツールを使用するか、Visual Studio IDE Workbench内からビルドできます。 コマンドラインビルドでは、環境には次のものが反映されている必要があります。
PATH
,INCLUDE
,LIB
そして、vcvars32.bat
スクリプトで設定できるその他の変数。古いバージョンのVisual Studio用のVisual Studio Processor Pack、または新しいVisual Studioエディションの完全な(Expressではない)バージョンのmlが必要な場合があります。exeアセンブラ… これにより、より効率的なアセンブリコードの実装を使用して、必要に応じてOpenSSLをビルドできます。アクティブなhttpd貢献者が積極的にサポートしているのは、Microsoftコンパイラツールチェーンのみです。 プロジェクトでは、MinGWやその他の代替ビルドが確実に機能し、改善するためのパッチを定期的に受け入れていますが、積極的に保守されておらず、通常の開発の過程で壊れてしまうことがよくあります。 -
Microsoft WindowsプラットフォームSDK、February2003以降を更新しました。
適切なWindowsプラットフォームSDKは、visual C++7.1(Visual Studio2002)以降の完全な(express/liteではない)バージョンに既定で含まれていますが、これらのユーザーは、プラットフォームSDKの新
Visual C++6.0または7.0(Studio2000.NET)を使用するには、コマンドラインビルドを開始するか、msdev/devenv GUI環境を起動する前に、
setenv.bat
スクリプト(Platform SDKによってインストー Platform SDK for Visual Studio Expressバージョン(2003以降)をインストールすると、既定の環境が適切に調整されます。"c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
"c:\Program Files\Platform SDK\setenv.bat" -
Perlとawk
ここで推奨されるいくつかの手順では、ビルド準備プロセス中にperlインタプリタが必要ですが、それ以外の場合は必要ありません。
ビルドシステム内にApacheをインストールするには、
awk.exe
ユーティリティを使用していくつかのファイルを変更します。 awkは(PerlやWSH/VBと比較して)非常に小さなダウンロードであり、インストール時に設定ファイルを変更するタスクを実行するために選択されました。 Brian Kernighanのhttp://www.cs.princeton.edu/~bwk/btl.mirror/サイトには、コンパイルされたネイティブのWin32バイナリhttp://www.cs.princeton.edu/~bwk/btl.mirror/awk95があります。名前awk.exe
(awk95.exe
ではなく)で保存する必要があるexeファイル。exeが見つかりません、Makefile。winのインストールターゲットは、インストールされた場所で置換を実行しません。confファイル。 インストールされているファイルを手動で変更する必要があります。サーバーの起動を許可するconfファイル。 必要に応じて、すべての”@token@”タグを検索して置換します。Visual Studio IDEは、パス、またはメニューオプションTools->Options->(Projects->)ディレクトリで指定された実行可能パスからawk.exe
のみを検索します。 Awkを確保します。exeはシステムパスにあります。また、Cygwinツール(http://www.cygwin.com/)を使用している場合、awkユーティリティの名前はgawk.exe
であり、ファイルawk.exe
は実際にはgawk.exe
ファイルへのシンボリックリンクであることに注意してくださ Windowsコマンドシェルはシンボリックリンクを認識せず、このビルドのためにInstallBinは失敗します。 回避策は、cygwinのインストールからawk.exe
を削除し、gawk.exe
をawk.exe
にコピーすることです。 また、gawk3.0のcygwin/mingwポートにも注意してください。xはバギーだった、3.1にアップグレードしてください。x gawkポートを使用する前に。 -
zlibライブラリ(
mod_deflate
)Zlibは
zlib
という名前のsrclib
サブディレクトリにインストールする必要があります。 これは、その場で構築する必要があります。 Zlibはhttp://www.zlib.net/から取得できます–mod_deflate
はバージョン1.2.3で正常に動作することが確認されています。nmake -f win32\Makefile.msc
nmake -f win32\Makefile.msc test -
OpenSSLライブラリ(sslをサポートした
mod_ssl
およびab.exe
用)OpenSSLライブラリは暗号化ソフトウェアです。 お客様が現在居住している国では、暗号化ソフトウェアの輸入、所有、使用、および/または他の国への再輸出に制限がある場合があります。 暗号化ソフトウェアを使用する前に、暗号化ソフトウェアの輸入、所有、または使用、および再輸出に関する国の法律、規制およびポリシーを確認して、こ 詳細はhttp://www.wassenaar.org/を参照してください。OpenSSLの設定とビルドにはperlがインストールされている必要があります。
OpenSSLは、
mod_ssl
またはabs.exe
プロジェクトをコンパイルするために、http://www.openssl.org/source/から取得したopenssl
という名前のsrclib
サブディレクトリにインストールする必要があります。SSLサポートを有効にしたc。 Apache mod_sslまたはabsにリンクするOpenSSLを準備する。exe、およびOpenSSLで特許障害機能を無効にするには、次のビルドコマンドを使用することができます:perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN32 -Ipath/to/srclib/zlib -Lpath/to/srclib/zlib
ms\do_masm.bat
nmake -f ms\ntdll.makSSLストリームを圧縮するコストをzlib dllをロードする必要がある最初の要求に転送するため、zlib-dynamicを使用することはお勧めできません。 注推奨されるパッチは、-Lフラグがwindowsビルドで動作することを可能にし、zdllの名前を修正します。libと保証します。pdbファイルは、トラブルシューティングのために生成されます。 アセンブラがインストールされていない場合は、上記にno-asmを追加し、ms\do_msmの代わりにms\do_ms.batを使用します。バットスクリプト… -
データベースライブラリ(
mod_dbd
用およびmod_dbd
用およびmod_dbd
mod_authn_dbm
)apr-utilライブラリは、dbm(keyed database)およびdbd(query oriented database)クライアント機能を、httpdサーバーとそのモジュール(認証や承認など)に公開します。 Sdbm dbmおよびodbc dbdプロバイダーは無条件にコンパイルされます。Dbdサポートには、Oracle instantclientパッケージ、MySQL、PostgreSQL、およびsqliteが含まれています。 これらすべてをビルドするには、たとえば、ライブラリパスを含めるようにLIBを設定し、ヘッダーパスを含めるようにINCLUDEし、四つのSDKすべてのdll binパスを含;
set DBD_LIST=sqlite3 pgsql oracle mysql
同様に、DBM_LISTを使用してDbmサポートを拡張して、クライアントライブラリのlibとヘッダーが使用可能であることを確認するために、LIB、INCLUDE、およびPATHを最初に
set DBM_LIST=db gdbm
データベース配布の選択に応じて、実際のリンクターゲット名(gdbmなど)を変更する必要がある場合があります。libとlibgdb。lib)に対応してリストされている。dsp/.ディレクトリsrclib\apr-util\dbdまたは内のmakファイル。..\dbm.README-win32を参照してください。様々なデータベースドライバSdkを取得する上でのより多くのヒントのためのtxtファイル。
Unixソースからのビルド
Apache HTTP Serverプロジェクトのポリシーは、Unixソースのみをリリースすることです。 ダウンロード可能なWindowsソースパッケージはボランティアによって提供されており、すべてのリリースで利用できない場合があります。 あなたはまだいくつかの追加の手順でUnixソースtarballからwindows上でサーバーを構築することができます。
- 最新バージョンのUnixソースtarballをダウンロードして解凍します。
- APR、AR-Util、APR-Iconvの最新バージョンのUnixソースtarballをダウンロードして解凍し、これらのソースをhttpd-2ディレクトリに配置します。x.x\srclib\apr,httpd-2.x.x\srclib\apr-utilおよびhttpd-2。x.x\srclib\apr-iconv
- コマンドプロンプトを開き、httpd-2にCDします。x.xフォルダ
- プロンプトで行末変換ユーティリティを実行します;
perl srclib\apr\build\lineends.pl
IDEを使用してVisual Studio開発環境でサーバーをビルドできるようになりました。 サーバーのコマンドラインビルドは、エクスポートしない限り、Unixソースからは実行できません。以下に説明するようにmakファイル。
コマンドラインビルド
Makefile.win
はトップレベルのApache makefileです。 Windows上でApacheをコンパイルするには、次のコマンドのいずれかを使用してrelease
またはdebug
フレーバーをビルドします:
nmake /f Makefile.win _apacher
nmake /f Makefile.win _apached
どちらのコマンドもApacheをコンパイルします。 後者は、結果のファイルの最適化を無効にし、バグを見つけて問題を追跡するためにコードをシングルステップすることを容易にします。
追加のmake(環境)変数DBD_LISTおよびDBM_LISTを使用して、apr-util dbdおよびdbmプロバイダの選択肢を追加できます。 Makefileの最初のコメントを確認します。ビルドを呼び出すときに提供できる追加オプションのための勝利。
Developer Studio Workspace IDE Build
Apacheは、VC++のVisual Studio開発環境を使用してコンパイルすることもできます。 このプロセスを簡素化するために、Visual StudioワークスペースApache.dsw
が提供されます。 このワークスペースは、完全なApacheバイナリリリースに必要な作業中の.dsp
プロジェクトのリスト全体を公開します。 適切な順序で構築されていることを保証するために、プロジェクト間の依存関係が含まれています。
Apache.dsw
ワークスペースを開き、アクティブなプロジェクトとしてInstallBin
(Release
またはDebug
ビルド、必要に応じて)を選択します。 InstallBin
は、関連するすべてのプロジェクトをビルドし、Makefile.win
を呼び出してコンパイルされた実行可能ファイルとdllを移動します。 あなたは、InstallBin
の設定、一般タブ、ビルドコマンドラインエントリを変更することにより、INSTDIR=
の選択肢をパーソナライズすることができます。 INSTDIR
のデフォルトは/Apache2
ディレクトリです。 テストコンパイルのみが必要な場合(インストールせずに)、代わりにBuildBin
プロジェクトをビルドすることができます。
.dsp
プロジェクトファイルはVisual Studio6.0(98)形式で配布されています。 Visual C++5.0(97) Visual Studio2002(.NET)以降のユーザーは、Apache.dsw
と.dsp
ファイルをApache.sln
と.msproj
ファイルに変換する必要があります。 ソース.dsp
ファイルが変更された場合は、.msproj
ファイルを再度再変換してください。 これは本当に簡単で、VC++7.0IDEでApache.dsw
をもう一度開いて再変換するだけです。
perl srclib\apr\build\cvtdsp.pl -2005
残念ながら、この構文はVisual Studio97またはエクスポートされたものではサポートされていません。makファイル。 これらの/Dフラグは、ファイルの長い説明を渡すために使用されます。mod_apachemodule.so ファイルを共有する。rcリソースバージョン-識別子ビルド。
perl srclib\apr\build\cvtdsp.pl -ossl11
Visual Studio2002(.NET)以降のユーザーは、ビルドメニュー、構成マネージャーダイアログを使用して、Debug
およびRelease
ソリューションモジュールabs
、mod_deflate
およびmod_ssl
コンポーネント、およびapr_db*
で始まるすべ これらのモジュールは、srclib
ディレクトリopenssl
やzlib
が存在し、環境変数DBD_LIST
やDBM_LIST
の設定に基づいて、条件付きでこれらのモジュールをビルドするBinBuild
ターゲットを使用してnmake
、またはIDEを直接呼び出すことによってビルドされます。
コマンドラインをエクスポートします。makファイル
エクスポートされた.mak
ファイルは大きな手間をかけますが、Visual C++5.0ユーザーがmod_ssl
、abs(SSLサポート付きab
)、および/またはmod_deflate
をビルドするために必要です。 ザ.makファイルは、Visual Studio Expressなど、より広範なC++ツールチェーンの配布もサポートしています。
依存関係を正しく解析できるように、すべての動的自動生成ターゲットを作成するには、まずすべてのプロジェクトをビルドする必要があります。 Visual Studio6内からプロジェクト全体をビルドします。0(98)IDEでBuildAll
ターゲットを使用し、すべてのmakefileに対してプロジェクトメニューのエクスポートを使用します(”依存関係を持つ”にチェックを入れます。)次のコマンドを実行して、絶対パスを相対パスに修正し、どこでもビルドできるようにします:
perl srclib\apr\build\fixwin32mak.pl
このコマンドは、httpdソースツリーの最上位ディレクトリから入力する必要があります。 現在のディレクトリ以下のすべての.mak
および.dep
プロジェクトファイルが修正され、タイムスタンプは.dsp
を反映するように調整されます。
は、生成された.mak
および.dep
ファイルを、Platform SDKまたはその他のローカルのマシン固有のファイルパス用に常に確認します。 DevStudio\Common\MSDev98\bin\
(VC6)ディレクトリには、すべての例外を一覧表示するsysincl.dat
ファイルが含まれています。 このような新しい依存関係を無視するように、このファイルを更新します(sys/time.h
とsys\time.h
の両方のような順方向パスと円記号付きパスの両方を含む)。 配布された.mak
ファイルにlocal-installパスを含めると、ビルドが完全に失敗します。
プロジェクトファイルを修正するパッチを投稿する場合は、Visual Studio6.0形式のプロジェクトファイルをコミットする必要があります。 変更は、すべてのVisual Studio環境で認識できる最小限のコンパイルおよびリンケージフラグで簡単に行う必要があります。
Installation
Apacheがコンパイルされたら、サーバのルートディレクトリにインストールする必要があります。 デフォルトは、同じドライブの\Apache2
ディレクトリです。
すべてのファイルを目的のフォルダdirに自動的にビルドしてインストールするには、次のnmake
コマンドのいずれかを使用します:
nmake /f Makefile.win installr INSTDIR=dir
nmake /f Makefile.win installd INSTDIR=dir
INSTDIR
へのdir引数は、インストールディレクトリを提供します; Apacheを(現在のドライブの)\Apache22
にインストールする場合は省略できます。
開発ツリーからのApacheのビルドに関する警告
.dsp
ファイルのみがrelease
ビルドの間に維持されます。 レビュアーの時間の浪費のため、.mak
ファイルは再生成されません。 したがって、すべての.mak
ファイルを自分でプロジェクトからエクスポートしない限り、上記のNMAKE
コマンドを使用して改訂された.dsp
プロジェクトファイルをビルドすることはできません。 これは、Microsoft Developer Studio環境内からビルドする場合は不要です。