LoginSignup
4
4

More than 5 years have passed since last update.

Nginxにngx_small_lightモジュールを組み込んでビルド・RPMパッケージ作成

Posted at

背景

EC2上でyum install nginxするとインストールされるnginxに画像リサイズ機能を付加したい。また、RPMパッケージにして後々展開しやすいようにしておきたい。

作業の概要

Amazon LinuxのyumリポジトリからSPRMを取得し、ngx_small_lightモジュールを組み込んでビルド・RPMパッケージを作成する。作業はEC2(Amazon Linux AMI 2015.09.1)上で行う。

必要なパッケージをインストール

$ sudo yum update -y
$ sudo yum groupinstall -y "Development Tools"
$ sudo yum install -y pcre-devel zlib-devel openssl-devel gd-devel
$ sudo yum install -y libunwind perl-ExtUtils-Embed gperftools gperftools-libs gperftools-devel libxslt libxslt-devel GeoIP GeoIP-devel
$ sudo yum install -y ImageMagick ImageMagick-devel

rpmbuildの作業環境準備

$ cd ~ && mkdir -p ~/rpmbuild/{SOURCES,SPECS}
$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

small_lightのセットアップ

(詳細は https://github.com/cubicdaiya/ngx_small_light

$ git clone -b v0.6.11 git@github.com:cubicdaiya/ngx_small_light.git /var/tmp/ngx_small_light
$ cd /var/tmp/ngx_small_light
$ ./setup
$ cd ~/

nginxのSRPMを取得・編集

$ sudo yum install -y nginx
$ get_reference_source -p nginx
$ rpm -ivh /usr/src/srpm/debug/nginx-1.8.0-10.25.amzn1.src.rpm

specファイルを編集

$ vim ~/rpmbuild/SPECS/nginx.spec
...
./configure \
    --add-module=%{_tmppath}/ngx_small_light \ # <= 追加
    --prefix=%{nginx_datadir} \
    --sbin-path=%{_sbindir}/nginx \
...

ビルド・パッケージング

$ rpmbuild -ba ~/rpmbuild/SPECS/nginx.spec
$ ls ~/rpmbuild/RPMS/x86_64/nginx-1.8.0-10.25.amzn1.x86_64.rpm
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4