Posted by at 2011年4月15日 金曜日

nginx高速、軽量な HTTP サーバ(かつリバースプロキシサーバ) nginx が開発開始から9年を経て、ようやくメジャーリリース 1.0.0 公開されました。
W3Tecs によれば、Apache, IIS についで第3位の6.8%のシェアを誇るまでになったそうです。
このサイトと私がやってるフォトブログ shot.dogmap.jp も、リバースプロキシサーバとして nginx を使用しています。

nginx の導入方法として過去にも何回かエントリ書いてますので、そちらも読んでやってください。

さて nginx を CentOS 等で利用する場合、yum のリポジトリに epel を加えることで yum install nginx でインストールできるのですが、残念ながらまだ 1.0.0 はインストールできません。
以前にも書いたんですが、最新の nginx を rpmbuild して rpm からインストールできるようにする方法を書いておきますね。

まずは rpm ビルドできる環境を用意します。

$ sudo yum install gcc rpm-build perl-ExtUtils-Embed
$ mkdir $HOME/rpm $HOME/rpm/SOURCES $HOME/rpm/SPECS $HOME/rpm/BUILD $HOME/rpm/SRPMS $HOME/rpm/RPMS $HOME/rpm/RPMS/x86_64
$ echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros

続いて rpm ビルド用のソースパッケージをインストール後、nginx 最新版(1.0.0)のソースを取得。

$ wget http://download.fedora.redhat.com/pub/epel/5/SRPMS/nginx-0.8.53-1.el5.src.rpm
$ rpm -Uvh nginx-0.8.53-1.el5.src.rpm
$ cd ~/rpm/SOURCES/
$ wget http://nginx.org/download/nginx-1.0.0.tar.gz

spec ファイルのバージョン番号を変更。

$ cd ~/rpm/SPECS/
$ vi nginx.spec
  → バージョン番号とかを取得してきた nginx のバージョンに合わせて変更

こんな感じで修正します。

# vi nginx.spec
%define _unpackaged_files_terminate_build 0              <- 追加
 :
Version:        1.0.0
 :
#Patch0:     nginx-auto-cc-gcc.patch                         <- コメントアウト
#Patch1:     nginx-cve-2009-3555.patch                       <- コメントアウト
 :
#%patch0 -p0                                     <- コメントアウト
#%patch1 -p0                                     <- コメントアウト
 :
%build
# nginx does not utilize a standard configure script.  It has its own
# and the standard configure options cause the nginx configure script
# to error out.  This is is also the reason for the DESTDIR environment
# variable.  The configure script(s) have been patched (Patch1 and
# Patch2) in order to support installing into a build environment.
export LANG='ja_JP.UTF-8'                                      <- 追加
export DESTDIR=%{buildroot}

そんで、おもむろに rpm ビルド。

$ rpmbuild -bb nginx.spec

その際「ビルド依存性の失敗」とか言われたら、足りないパッケージを yum なりなんなりでインストールしましょう。
手元の環境のさくらVPSだと、ビルド依存性の失敗はこれくらい出ました。

$ rpmbuild nginx.spec
エラー: ビルド依存性の失敗:
	pcre-devel は nginx-1.0.0-1.x86_64 に必要とされています
	zlib-devel は nginx-1.0.0-1.x86_64 に必要とされています
	openssl-devel は nginx-1.0.0-1.x86_64 に必要とされています
	libxslt-devel は nginx-1.0.0-1.x86_64 に必要とされています
	GeoIP-devel は nginx-1.0.0-1.x86_64 に必要とされています
	gd-devel は nginx-1.0.0-1.x86_64 に必要とされています

rpm ビルドが無事に終了すると ~/rpm/RPMS に rpm パッケージができ上がるのでインストールしましょう。

$ cd ~/rpm/RPMS/x86_64/
$ sudo rpm -Uvh nginx-1.0.0-1.el5.x86_64.rpm

こんなところです。

nginx のコンフィグファイルの書き方とかは、過去のエントリを参考にしてみてください。

コメント

  • twitter 2011年11月28日 月曜日 6:00 PM

    【nginx】【rpm】 nginx 1.0.0 が出てます : dogmap.jp http://t.co/WdK7NbPU

  • twitter 2011年5月30日 月曜日 10:08 PM

    最新のnginxをRPMパッケージにする手順@CentOS / nginx 1.0.0 が出てます http://t.co/UKbxVPr

  • hatena bookmark 2011年5月25日 水曜日 12:57 AM

    このページ見てNginxのセットアップできました。ありがとうございます。

  • twitter 2011年5月25日 水曜日 12:57 AM

    このページ見てNginxのセットアップできました。ありがとうございます。 / nginx 1.0.0 が出てます : dogmap.jp http://htn.to/StTRis

  • hatena bookmark 2011年5月16日 月曜日 5:01 PM

    本当だ!いつの間に(・∀・) → http://nginx.org/ 2011-05-10 nginx-1.0.2 stable version has been released. → 本も買ってみるかな? http://www.amazon.co.jp/dp/4048702270

  • hatena bookmark 2011年4月19日 火曜日 9:12 PM

    入れてみた。

  • twitter 2011年4月19日 火曜日 9:12 PM

    入れてみた。 / nginx 1.0.0 が出てます : dogmap.jp http://htn.to/cje3Bw

  • twitter 2011年4月19日 火曜日 11:40 AM

    nginx+1.0.0+が出てます http://t.co/LZzwKa2
    うおーーとうとう出てたー。nginxは好きですね。

  • twitter 2011年4月16日 土曜日 4:17 PM

    nginx 1.0.0 が出てます : dogmap.jp: http://bit.ly/fvKI0c

  • hatena bookmark 2011年4月15日 金曜日 4:32 PM

    nginxのrpmビルドとか。使ってみようかしら。

  • twitter 2011年4月15日 金曜日 2:41 PM

    nginx 1.0.0のrpmパッケージの作り方。個人的メモ http://bit.ly/gDEi9z

  • twitter 2011年4月15日 金曜日 2:00 PM

    nginx 1.0.0 が出てます : dogmap.jp 高速、軽量な HTTP サーバ(かつリバースプロキシサーバ) nginx が開発開始から9年を経て、ようやくメジャーリリース 1.0.0 公開されました。 W3Tecs …http://bit.ly/dXa9Ba

コメントする

入力いただいたメールアドレスから Gravatar に登録されているアイコンを表示します。
(メールアドレスは公開されません)

改行と段落タグは自動で挿入されます。メールアドレスは表示されません。

:mrgreen: :-P :-D :-) ;-) :-o :-| :-( 8-O :-? 8-) :twisted: :evil: :oops: :roll: :cry: :lol: :-x more »