nginxのソースコードからのビルド方法(Windows版)

ここでは、WebサーバーnginxのバイナリファイルからのWindowsマシン向けへのビルド方法について、説明をします。
なお、事前にVisual Studio 2015の導入及び、.tar.gzファイルの解凍が出来る環境を準備しておく必要があります。

1. Visual Stodio 2015にVisual C++をインストールする

プログラムと機能の画面より、Visual Studio 2015をダブルクリックします。
(画像のバージョンはEnterprise版ですが、自分の持っているエディションに合わせて適宜読み替えてください)
1

下記画面になったら、下の変更ボタンをクリックします。
2

その後、Visual C++にチェックを付け、インストールを実施します。
(既にチェックがついている場合はインストール済みです)
3

2. ActivePerlのインストール

OpenSSLのコンパイルにPerlが必要なため、インストールを実施します。
下記サイトにアクセスし、ActivePerlのインストーラーをダウンロードします。
http://www.activestate.com/activeperl/downloads
4a

インストーラーを起動し、順番に進めていきます。
途中、インストールする構成を聞かれますが、今回の作業の場合、『Typical』で問題ありません。
5

その後、環境変数を登録するか聞かれますので、必ずチェックを入れるようにしてください。
6

3. MinGW及びmsysのインストール

Makefileの生成のためにMinGW及びmsysが必要なため、インストールを実施します。
下記サイトにアクセスしてMinGW (mingw-get-setup.exe)をダウンロードし、インストールを実行します。
https://sourceforge.net/projects/mingw/files
7

その後、MinGW Installerを起動し、Basic Setupよりmsys-baseにチェックを入れ、『Apply Changes』を選択してmsysをインストールします。
8

4. nginxソースコードのダウンロード

下記サイトにアクセスし、左メニューから『tags』を選択します。
http://hg.nginx.org/nginx
9a

バージョン一覧が出るので、必要なバージョンをクリック。
バージョンをクリックすると下記画面になるので、左メニューのzipをクリックし、ソースコードをダウンロードします。
10

その後、ダウンロードしたzipファイルを、任意のフォルダに解凍します。

5. ビルドに必要なライブラリのダウンロード

pcre-8.39.tar.gz(https://sourceforge.net/projects/pcre/files/pcre/8.39/)
zlib-1.2.8.tar.gz(http://zlib.net)
openssl-1.0.2j.tar.gz(https://www.openssl.org/source/)
以上3つのファイルを各サイトよりダウンロードし、それぞれ解凍します。
解凍後のフォルダは、nginxソースを解凍したフォルダ内に新たにobjsフォルダを作成、その中にlibフォルダを作成し、その直下に、解凍した各ライブラリフォルダを移動してください。
11

6. OpenSSLのコンパイルを実施する

nginxのビルドと同時にOpenSSLをコンパイルするとエラーが発生するため、先に単独でコンパイルを実施します。
スタートメニューより、『VS2015 x86 Native Tools コマンド プロンプト』を起動します。
12

コマンドプロンプトが立ち上がるので、カレントディレクトリをnginxのソースコードフォルダ内にある、opensslライブラリのフォルダに合わせます。
その後、以下のコマンドを順番に入力し、OpenSSLのコンパイルを実行します。

perl Configure VC-WIN32 no-asm --prefix=openssl-1.0.2j
ms\do_ms
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install

7. Makefileの生成

C:\MinGW\msys\1.0内にあるmsys.batをクリックし、msysを起動します。
13

その後、カレントディレクトリをnginxのソースコードフォルダに合わせ、以下のコマンドを入力しMakefileを生成します。
(msysの場合、cdでの遷移の場合などのパス区切りの入力は『/』のみ有効です)

auto/configure --with-cc=cl --builddir=objs --prefix= \
--conf-path=conf/nginx.conf --pid-path=logs/nginx.pid \
--http-log-path=logs/access.log --error-log-path=logs/error.log \
--sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp \
--with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre-8.39 \
--with-zlib=objs/lib/zlib-1.2.8 --with-openssl=objs/lib/openssl-1.0.2j \
--with-select_module --with-http_ssl_module \
--with-openssl-opt=no-asm

8. nginxのビルドを実施する

6.と同じ手順にてVS2015 x86 Native Tools コマンドプロンプトを起動します。
その後、カレントディレクトリをnginxのソースコードフォルダに合わせ、以下のコマンドを入力します。

nmake -f objs/Makefile

完了すると、objsフォルダ直下にnginx.exeファイルが出来ています。
14

動作確認のため、objsフォルダ直下で『nginx -v』とコマンドを入力します。
ダウンロードしたソースコードと同じnginxのバージョンが出れば、ビルドは正しく実施できています。
15

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA