_J Blog

学んだ事のまとめやメモなどが中心です

CentOS-6.3にNginx-1.3.6をインストールする

サーバーを構築する機会があったので、
せっかくだからNginxの現時点での最新バージョンを入れてみた。

Nginxは一旦ビルドすると、モジュールの追加は再コンパイルが必要なので、
使うかもってのは一旦入れてみた。
まあ、開発機だから、いいかなと・・・


・入れたモジュールは下記

モジュール名 説明 参考リンク
Cache Purge Nginxのキャッシュをページ単位で削除したりできる http://labs.frickle.com/nginx_ngx_cache_purge/
Http Headers Morte HTTP レスポンスにヘッダーを付け足せる http://wiki.nginx.org/HttpHeadersMoreModule
Http Redis NginxからRedisを利用できる http://wiki.nginx.org/HttpRedis
Drizzle NginxからDrizzleを利用できる http://wiki.nginx.org/HttpDrizzleModule
Lua NginxからLuaを利用できる http://wiki.nginx.org/HttpLuaModule


インストール手順

rootで行うとします。
※ここは許してください・・・

■Nginxモジュールダウンロード用のディレクトリ作成
mkdir /usr/local/src/nginx_modules && cd /usr/local/src/nginx_modules

■モジュールのダウンロード

●CachePurge
wget http://labs.frickle.com/files/ngx_cache_purge-1.6.tar.gz
tar zxvf ngx_cache_purge-1.6.tar.gz

●HttpHeadersMore
wget -O headers-more-nginx-0.18.tar.gz https://github.com/agentzh/headers-more-nginx-module/tarball/v0.18
tar xzvf headers-more-nginx-0.18.tar.gz

●HTTP Redis
wget http://people.freebsd.org/~osa/ngx_http_redis-0.3.6.tar.gz
tar zxvf ngx_http_redis-0.3.6.tar.gz

●Drizzle
#必要なモジュールインストール
yum install protobuf-devel.x86_64 uuid-devel.x86_64 e2fsprogs-devel.x86_64 libuuid-devel.x86_64 readline-devel.x86_64 boost.x86_64 boost-devel.x86_64 libxml2.x86_64 libxslt.x86_64 libxml2-devel.x86_64 libxslt-devel.x86_64 openssl-devel.x86_64

・gprefインストール(http://www.gnu.org/software/gperf/)
wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.4.tar.gz
tar zxvf gperf-3.0.4.tar.gz && cd gperf-3.0.4 && ./configure && make && make install

・boostインストール(http://www.boost.org/)
wget http://sourceforge.net/projects/boost/files/boost/1.51.0/boost_1_51_0.tar.gz/download
tar zxvf boost_1_51_0.tar.gz && cd boost_1_51_0

・drizzleインストール(https://launchpad.net/drizzle)
wget https://launchpad.net/drizzle/7.2/7.2.4/+download/drizzle-7.2.4-alpha.tar.gz
tar zxvf drizzle-7.2.4-alpha.tar.gz && cd drizzle-7.2.4-alpha

・drizzle-nginx-module
wget -O drizzle-nginx-module.zip https://github.com/chaoslawful/drizzle-nginx-module/zipball/master
unzip drizzle-nginx-module.zip

Lua(モジュール)
wget -O lua-nginx-module.tar.gz https://github.com/chaoslawful/lua-nginx-module/tarball/master
tar zxvf lua-nginx-module.tar.gz

Luaインストール
# Lua5.1xにしか対応していないみたい。
# nginx_lua_moduleのreadmeに書いてあった
#
# もし、皆さんが他の方法でNginxをビルドしてて
# "error: 'LUA_GLOBALSINDEX' undeclared (first use in this function) "
# などとメッセージが出たらLuaのバージョンによる問題の可能性があります。
#
wget http://www.lua.org/ftp/lua-5.1.5.tar.gz
tar xzvf lua-5.1.5.tar.gz && cd lua-5.1.5
make linux && make install

・LuaJIT
# 念のため、2.0
wget http://luajit.org/download/LuaJIT-2.0.0-beta10.tar.gz
tar zxvf LuaJIT-2.0.0-beta10.tar.gz && cd LuaJIT-2.0.0-beta10
make


■Nginxのダウンロード・インストール
wget http://nginx.org/download/nginx-1.3.6.tar.gz
tar zxvf nginx-1.3.6.tar.gz
cd nginx-1.3.6

# Configure
# 念のため --debugつけました。
#
./configure \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module \
--with-http_image_filter_module \
--with-http_geoip_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_degradation_module \
--with-http_stub_status_module \
--with-http_perl_module \
--with-debug \
--add-module=/usr/local/src/nginx_modules/ngx_cache_purge-1.6 \
--add-module=/usr/local/src/nginx_modules/agentzh-headers-more-nginx-module-6586984 \
--add-module=/usr/local/src/nginx_modules/chaoslawful-drizzle-nginx-module-0f975c6 \
--add-module=/usr/local/src/nginx_modules/chaoslawful-lua-nginx-module-b771a2e \
--add-module=/usr/local/src/nginx_modules/ngx_http_redis-0.3.6

# Make
make && make install

起動

/usr/local/nginx/sbin/nginx
でok

番外編(エラー解決編)

"Can't locate ExtUtils/Embed.pm" のエラー
yum -y install perl-devel perl-ExtUtils-Embed
http://www.netingcn.com/nginx-perl.html

■nginx起動エラー
error while loading shared libraries: libdrizzle.so.4: cannot open shared object file: No such file or directory
ライブラリがロードできていないので

1). LD_LIBRARY_PATH に追加するか,
2). /etc/ld.conf.d/ にロードパスを追加する。

ここでは(2)を選択
下記コマンドを実行する

echo "/usr/local/lib" > /etc/ld.so.conf.d/libdrizzle.conf
ldconfig



以上です。
ご指摘などございましたらどんどんくださるとうれしいです。