ApacheをMicrosoft Windows用にコンパイルする

含まれている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.exeawk.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.mak

    SSLストリームを圧縮するコストをzlib dllをロードする必要がある最初の要求に転送するため、zlib-dynamicを使用することはお勧めできません。 注推奨されるパッチは、-Lフラグがwindowsビルドで動作することを可能にし、zdllの名前を修正します。libと保証します。pdbファイルは、トラブルシューティングのために生成されます。 アセンブラがインストールされていない場合は、上記にno-asmを追加し、ms\do_msmの代わりにms\do_ms.batを使用します。バットスクリプト…
  • データベースライブラリ(mod_dbd用およびmod_dbd用およびmod_dbdmod_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上でサーバーを構築することができます。

  1. 最新バージョンのUnixソースtarballをダウンロードして解凍します。
  2. 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
  3. コマンドプロンプトを開き、httpd-2にCDします。x.xフォルダ
  4. プロンプトで行末変換ユーティリティを実行します;

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をもう一度開いて再変換するだけです。

に欠陥があります。のvcproj変換.dspファイル。 devenv。exeは、スペースを含む長い引用符で囲まれた/D’definesを含むRCフラグの/Dフラグを誤って解析します。 コマンド:

perl srclib\apr\build\cvtdsp.pl -2005

残念ながら、この構文はVisual Studio97またはエクスポートされたものではサポートされていません。makファイル。 これらの/Dフラグは、ファイルの長い説明を渡すために使用されます。mod_apachemodule.so ファイルを共有する。rcリソースバージョン-識別子ビルド。

OpenSSL1.1.0以降でのビルドバージョン1.1.0以降でのOpenSSLのビルド構造の違いにより、影響を受けるdspファイルを変換する必要がありますcvtdsp.pl APR1.6以上から。 コマンド:

perl srclib\apr\build\cvtdsp.pl -ossl11

Visual Studio2002(.NET)以降のユーザーは、ビルドメニュー、構成マネージャーダイアログを使用して、DebugおよびReleaseソリューションモジュールabsmod_deflateおよびmod_sslコンポーネント、およびapr_db*で始まるすべ これらのモジュールは、srclibディレクトリopensslzlibが存在し、環境変数DBD_LISTDBM_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.hsys\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環境内からビルドする場合は不要です。

コメントを残す

メールアドレスが公開されることはありません。