‘Visual Studio’ タグのついている投稿

nginxのWindows版バイナリをビルドする

nginxのWindows版バイナリは公式で配布されていますが、nginxに追加のモジュールを入れたい場合、どうしても自分でビルドする必要がでてきます。

ビルド方法は公式のドキュメントに書かれています。

How to build nginx on the Win32 Platform with Visual C

が、色々ハマるのでメモしておきます。ビルド環境はWindows7 Professional x64です。

必要なのは以下。

  • Microsoft Visual C++ Compiler
  • Microsoft Windows SDK
  • MinGW/MSYS
  • ActivePerl
  • PCRE
  • zlib
  • OpenSSL

まず、VCコンパイラが必要なので、Microsoft Visual C++ Expressをインストールします。

Microsoft Visual Studio Express

上記ページのVisual C++ 2010 ExpressのWebインストールをクリックすればvc_web.exeがダウンロードできるので、それを実行してあとは言われるままにインストールすればOKです。

続いてMicrosoft Windows SDK(旧Platform SDK)をインストールします。

Windows SDK: Download the Windows SDK for Windows 7 and More | MSDN

「Install Now」を押せばインストールできます。こちらもそのままインストールすればOK。

OpenSSLのコンパイルにPerlが必要なので、ActivePerlをインストールします。32bit版と64bit版がありますが、僕は64bit版をインストールしました。

ActivePerl Downloads – Perl Binaries for Windows, Linux and Mac | ActiveState

続けてMinGW/MSYSのインストールをします。

MinGW – Minimalist GNU for Windows – Browse Files at SourceForge.net

「Looking for the latest version?」と書かれている隣のファイルをダウンロードします。

インストールが終わったら環境変数の設定をします。

MinGW Shellを起動して、パスを設定します。

$ export LIB="C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\lib;C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Lib"
$ export INCLUDE="C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\include;C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Include"
$ export PATH="$PATH:/c/Perl64/bin:/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin:/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE:/c/Program Files/Microsoft SDKs/Windows/v7.1/Bin"

nginxのソースコードをダウンロードしましょう。tarボールで提供されているものには、Windows用のConfigureが入っていないらしいので、svnから取得します。

svnコマンドが使えるのであれば、
svn co svn://svn.nginx.org/tags/release-(バージョン番号)
でチェックアウトできます。僕はrelease-1.0.10を使いました。

なぜかTortoiseSVNではtags/release-1.0.10が表示できませんでした。

ダウンロードしたソースコードはMSYSのHOMEディレクトリに置きます。

C:\MinGW\msys\1.0\home\(ユーザー名)\nginx
としました。

PCRE、zlib、OpenSSLをダウンロードします。

PCRE – Browse /pcre at SourceForge.net

zlib Home Site

OpenSSL: Source, Tarballs

pcre-8.20.zip、zlib-1.2.5.tar.gz、openssl-1.0.0e.tar.gzをダウンロードしました。

nginxディレクトリの下にobjs/libディレクトリを作成します。ここに、先ほどダウンロードした3ファイルを解凍したものを設置します。

これで準備はできたので、ビルドします。

公式のビルド方法に載っているConfigureを実行します。が、PCREのバージョンは8.20になっていたので、–with-pcreの引数は変更します。あとは適宜合わせてください。

$ 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.20 \
–with-zlib=objs/lib/zlib-1.2.5 –with-openssl=objs/lib/openssl-1.0.0e \
–with-select_module –with-http_ssl_module –with-ipv6

Configureが成功したら、nmakeでビルドします。

$ nmake -f objs/Makefile

これで、何も問題がなければnginx/objsディレクトリにnginx.exeファイルが出来上がっているはずです。

このnginx.exeファイルを、ひとつ上のディレクトリ(nginx)に設置して、

$ mkdir logs
$ mkdir temp

として、

$ start nginx.exe

で起動できます。

これでやっと追加モジュールをインストールできるというもの。


Visual Studio 2005をWindows 7で使う

インストール自体は普通にできます。

インストール後、以下の2つのファイルを順番にインストールします。
SP1の方は431MBほどあるので注意。

ダウンロードの詳細 : Visual StudioR 2005 Team Suite SP1
ダウンロードの詳細 : VS2005 SP1 Update for Vista

あと、Visual Studio起動時に表示されるスタートページのニュースチャンネルは、該当URLがすでになくなっているので、スタートページ自体表示しないようにした方がいいかもしれません。

ツール→オプション→環境→スタートアップで。


SilverlightのTestPage.htm自動生成をやめる

やめる、というか、HTMLのobject要素内にparamとか追加したかったので、別ページを用意して、そのファイルをビルド時に実行してくれるようにしたいのです。

ASP.NETのプロジェクトがくっついている場合はそちらを修正すればいいのですが、Silverlightプロジェクトを単体で作ってしまった場合用。

環境はVisual Studio 2010 ベータを使っています。

メニューの[プロジェクト]から、[新しい項目の追加]、[HTMLファイル]を選択して1ページ作成してやります。

スケルトンのHTMLがエディタに表示されるので、Silverlightを呼び出すタグを書きます。自動生成されたTestPage.htmの内容でもコピーして作ると楽。

ちなみに実行自体はプロジェクトのルートフォルダにできるので、xapファイルのパスの前にBin/debug/などをつけてやる必要あり。(出力ディレクトリにコピーできるけど、コピーしてもそちらが実行されるわけではない)

で、プロジェクトのプロパティで、デバッグ→開始動作のラジオボタンを[テスト ページを動的に生成する]から[ページを指定する]に変更して、htmlファイルを選択。完了。