nginx の最新版を手に入れるには ( リポジトリの設定 )
まずは、最新版のnginxを入手する方法を解説しておきます。
その後、WebDAV拡張モジュール(ngx-dav-ext-module) を組み込んでみます。
最新版のnginxを入手するには、もちろんnginxのサイトをリポジトリに登録することで安定版(stable)の最新版を入手することができます。以降に、その方法を簡単に解説しておきます。
nginxのサイトから、パッケージの公開鍵をダウンロードし、apt-keyで追加する
nginxのサイトをパッケージダウンロード先として登録する
いわゆるリポジトリの登録です。/etc/apt/sources.list の末尾に以下を追記します。
Ubuntu 10
| ...
deb http://nginx.org/packages/ubuntu/ lucid nginx
deb-src http://nginx.org/packages/ubuntu/ lucid nginx
 | 
Debian 6
| ...
deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx
 | 
 
apt-get でキャッシュならびシステムの更新を行う 
ダウンロード先の登録などを行った場合は、キャッシュ情報など更新のために apt-get  でアップデートを行います。
| $ sudo apt-get update [sudo] password for hoge:  ...
Reading package lists... Done
 | 
ここまでできたら、最新版のnginxをインストールすることができます。バイナリをそのままインストールしたい場合、
| $ sudo apt-get install nginx [sudo] password for hoge:  ...
 | 
これですぐに最新版をインストールすることができます。
ここでは、モジュールを追加したいので、自前でパッケージを作成します。
そのために、次に最新のソースコード一式をダウンロードし、WebDAV拡張モジュール(ngx-dav-ext-module)モジュールを組み込んでみます。
 
nginx のパッケージ(pkg)を作成する ( WebDAV拡張モジュール(ngx-dav-ext-module) を組み込む )
先にも説明したように、WebDAV拡張モジュール(ngx-dav-ext-module)をnginxに組み込むには、pkgの再構築が必要になります。
以前の「Nginxの最新版ソースから バイナリパッケージ(rpm)を作成し、インストールする」で、nginxのrpmの再構築を行いました。
基本的なやり方は、同じです。rpm が pkg へ変わる程度です。 一応、順を追って、先の「Nginxの最新版ソースから バイナリパッケージ(rpm)を作成し、インストールする」になぞって解説してみます。
パッケージを作成するために必要な環境をインストールする
nginxの最新版のソースコード一式をダウンロードする
nginxの最新版のソースコード(パッケージ作成環境)一式をダウンロードします。
| $ sudo apt-get source nginx [sudo] password for hoge:  ...
$ sudo chmod -R hoge. *  [sudo] password for hoge:  
 | 
Ubuntuの場合、ソースコードの展開先は、カレントディレクトリになります。
後々、面倒なので、
Ubuntu なら、自分のホームディレクトリに適当なディレクトリを作成して、そこで上記の apt-get を実行すると良いでしょう。
また、
Debian や 
sudo  を利用していない場合などは、
/usr/local/src  がわかり易いでしょうね。
| $ mkdir ~/nginx-pkg $ cd ~/nginx-pkg  [~/nginx-pkg]$ sudo apt-get source nginx  ...
 | 
また、最後にファイル、ディレクトリ一式の所有者を切り替えています。
(su で rootになっている場合は問題ありませんが、) 元はrootになっていて、ビルド実行時にエラーとなることがあります。
以降の説明では、/home/hoge/
src/nginx-pkg/  へ展開したものとして解説します。
 
nginxのビルドに必要なライブラリをインストールする
nginxをビルドする際に必要になるライブラリ( libpcre3-dev , libssl-dev , zlib1g-dev )をインストールします。
| $ sudo apt-get install libpcre3-dev libssl-dev zlib1g-dev [sudo] password for hoge:  ...
 | 
nginx 1.2.4 では、少なくとも libpcre3-dev , libssl-dev , zlib1g-dev が必要でした。
必要なパッケージは、以下のように nginxの最新版のソースコードの 
controlファイルに記載されているので、確認すると良いでしょう。
| [~/nginx-pkg]$ cd nginx-1.2.4/ [~/nginx-pkg/nginx-1.2.4]$ cat debian/control | grep Build-Depends:  Build-Depends: debhelper (>= 7.0.50~), libssl-dev (>= 0.9.7), libpcre3-dev, zlib1g-dev
 | 
nginx-1.3.0 の場合は、ディレクトリ名が異なるのみです。
 : nginx-1.2.4 → 
nginx-1.3.0 となります。
以降、nginx-1.2.4として解説しますが、手順は、nginx-1.2.0でも同じです。
 
WebDAV拡張モジュール(ngx-dav-ext-module)をダウンロードし、組み込む
WebDAV拡張モジュール(ngx-dav-ext-module)をダウンロードし、Buildオプションを設定します。
| [~/nginx-pkg/nginx-1.2.4]$ git git clone https://github.com/arut/nginx-dav-ext-module.git 
 | 
WebDAV拡張モジュール(ngx-dav-ext-module) は、(バージョン管理システムの一つ)gitで管理されています。そのため、gitコマンドを使って最新版をダウンロードすることができます。
( git コマンドが使えない方は、aptでインストールしましょう。)
また、Buildオプションの設定時にモジュールを展開したディレクトリを指定する必要があります。
ここでの例では、
| /home/hoge/src/nginx-pkg/nginx-1.2.4/nginx-dav-ext-module
 | 
が必要になります。
nginx のBuildオプションにWebDAV基本モジュール、WebDAV拡張モジュール(ngx-dav-ext-module)を設定します。
./nginx-1.2.4/debian/rules ファイルにて設定します。
| ...
override_dh_auto_build:
        dh_auto_build
        mv objs/nginx objs/nginx.debug
        ./configure \
                --prefix=/etc/nginx/ \
                --sbin-path=/usr/sbin/nginx \
                 ...
                --with-http_dav_module \
                 ...
                --with-ipv6 \
                --add-module=/home/hoge/src/nginx-pkg/nginx-1.2.4/nginx-dav-ext-module
...
configure_debug:
        ./configure \
                --prefix=/etc/nginx/ \
                --sbin-path=/usr/sbin/nginx \
                 ...
                --with-http_dav_module \
                 ...
                --with-ipv6 \
                --add-module=/home/hoge/src/nginx-pkg/nginx-1.2.4/nginx-dav-ext-module \ 
                --with-debug
...
 | 
それぞれ、
                –with-http_dav_module \ : WebDAV基本モジュールの設定箇所
                –add-module=/home/hoge/src/nginx-pkg/nginx-1.2.4/nginx-dav-ext-module \  : WebDAV拡張モジュールの設定箇所
になります。
 
nginx をビルドし、パッケージを作成する
nginx をビルドし、パッケージを作成します。
Ubuntu では、パッケージ作成を行う場合、dpkg-buildpackageを使います。
| [~/nginx-pkg/nginx-1.2.4]$ dpkg-buildpackage -uc -b -d ...
 | 
[ dpkg-buildpackage のパラメータの意味 ]
| -uc    .changesファイルへ書き込みません。
-b    バイナリパッケージのみ作成します。
      ソースコードを含みません。
-d    ビルドの依存関係とコンフリクトをチェックしません。
 | 
バイナリパッケージは、一つ下位ディレクトリに作成されます。
| [~/nginx-pkg/nginx-1.2.4]$ ls ../ nginx-1.2.4                   nginx_1.2.4-1_i386.changes
nginx-debug_1.2.4-1_i386.deb  nginx_1.2.4-1_i386.deb
nginx_1.2.4-1.debian.tar.gz   nginx_1.2.4.orig.tar.gz
nginx_1.2.4-1.dsc
 | 
ここでは、32bitOSなので、
Ubuntu : nginx_1.2.4-1_i386.deb 
Debian : nginx_1.2.4-1~squeeze_i386.deb 
というパッケージファイルが作成されました。
 
最新のnginx をインストールして、動かしてみる
ここまでで作成したnginxの最新パッケージをインストールして、動かしてみます。
Ubuntu 10
| [~/nginx-pkg/nginx-1.2.4]$ sudo dpkg -i ../nginx_1.2.4-1_i386.deb [sudo] password for hoge:  ...
 | 
Debian 6
| [~/nginx-pkg/nginx-1.2.4]$ dpkg -i ../nginx_1.2.4-1~squeeze_i386.deb ...
 | 
続けて、サービスを起動してみます。
( インストールした時点で起動していると思います。もし、起動していないなら、手動で起動してみましょう。 ) 
| $ sudo /etc/init.d/nginx start [sudo] password for hoge:  $ ps aux|grep nginx  root     23545  0.0  0.0   4960   752 ?        Ss   13:45   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx    23546  0.0  0.1   5116  1124 ?        S    13:45   0:00 nginx: worker process
hoge     23581  0.0  0.0   1860   580 pts/0    R+   13:46   0:00 grep --color=auto nginx
 | 
ちゃんと動作しているようなので、ブラウザから確認してみましょう。
以下のような初期ページが表示されればOKです。
 
 
ちゃんと WebDAV基本モジュール、WebDAV拡張モジュール(ngx-dav-ext-module) が、組み込まれたかどうか確認するには、以下のようにコマンドで確認できます。
| $ nginx -V nginx version: nginx/1.2.4
TLS SNI support enabled
configure \
arguments: \
    --prefix=/etc/nginx/ \
    --sbin-path=/usr/sbin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --pid-path=/var/run/nginx.pid \
    --lock-path=/var/run/nginx.lock \
    --http-client-body-temp-path=/var/cache/nginx/client_temp \
    --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
    --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
    --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
    --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
    --user=nginx \
    --group=nginx \
    --with-http_ssl_module \
    --with-http_realip_module \
    --with-http_addition_module \
    --with-http_sub_module \
    --with-http_dav_module \
    --with-http_flv_module \
    --with-http_mp4_module \
    --with-http_gzip_static_module \
    --with-http_random_index_module \
    --with-http_secure_link_module \
    --with-http_stub_status_module \
    --with-mail \
    --with-mail_ssl_module \
    --with-file-aio \
    --with-ipv6 \
    --add-module=/usr/local/src/nginx-pkg-3/nginx-1.2.3/ngx_cache_purge-1.6 \
    --add-module=/home/hoge/src/nginx-pkg/nginx-1.2.4/nginx-dav-ext-module
 | 
configure があまりに長いので 適当な箇所で
\ 記号で改行しています。
ちゃんと 
http_dav_module、
nginx-dav-ext-module  が出力されていますね。
次回の 
nginx で WebDAVを使ってファイル共有してみる では、この nginx で WebDAV を使ってみます。
 
コメントを投稿 :