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 を使ってみます。
コメントを投稿 :