harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

OpenRestyのインストールメモ[RPMbuild] Ver1.9.7.2

   


開発チームから”luaを使う案件が入ったのでOpenRestyを入れてくださ~い”とのリクエストを受けたので、ササッと対応。
EC2で作成した開発用のスナップショットにRPM版のnginxが入っていたので、OpenRestyもRPMでインストールすることに。
openrestyのRPMパッケージ作成には、GitHubで提供されているinitファイルとspecファイルを用いてrpmbuildをする流れで。
ソース自体は公式サイトからダウンロードする形で問題なし。

参考:お世話になっております!
OpenResty 公式サイト
openresty-rpm-spec
実は手順もすべてここを参考にw

今回セットアップに使った開発環境(AWSです)
CentOS6.7(RightScale)
MariaDB-10.1
PHP-5.6
nginx-1.0.15
Redis-3.2

とはいえ、直接関係があったのは入れ替え対象となるnginxだけですw

1)事前準備

– 事前準備1、依存関係パッケージ(おもに開発ツール)のインストール

インストール時に必要となる依存関係パッケージを事前にインストールしておく。

 
# yum install readline-devel pcre-devel openssl-devel gcc gcc-c++

– インストールパッケージ(依存関係パッケージ含む)

cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
cpp-4.4.7-16.el6.x86_64.rpm
gcc-4.4.7-16.el6.x86_64.rpm
keyutils-libs-devel-1.4-5.el6.x86_64.rpm
krb5-devel-1.10.3-42z1.el6_7.x86_64.rpm
libcom_err-devel-1.41.12-22.el6.x86_64.rpm
libselinux-devel-2.0.94-5.8.el6.x86_64.rpm
libsepol-devel-2.0.41-4.el6.x86_64.rpm
mpfr-2.4.1-6.el6.x86_64.rpm
ncurses-devel-5.7-4.20090207.el6.x86_64.rpm
openssl-devel-1.0.1e-42.el6_7.4.x86_64.rpm
pcre-devel-7.8-7.el6.x86_64.rpm
ppl-0.10.2-11.el6.x86_64.rpm
readline-devel-6.0-4.el6.x86_64.rpm
zlib-devel-1.2.3-29.el6.x86_64.rpm
gcc-c++-4.4.7-16.el6.x86_64.rpm
libstdc++-devel-4.4.7-16.el6.x86_64.rpm

– 事前準備2、rpmbuildコマンドの追加

specファイルを使ってパッケージをビルドするのでrpm-buildを入れておく。

# yum install rpm-build

2)パッケージの作成

rpmbuildまで一気に進めたかったので、rootアカウントですべて進めてしまったw

– ソースとinitファイルのダウンロード

# mkdir -p ~/rpmbuild/{SOURCES,SPECS}
# wget https://openresty.org/download/ngx_openresty-1.9.7.2.tar.gz
# wget https://github.com/brnt/openresty-rpm-spec/raw/master/nginx.init

– SPECファイルのダウンロード

# cd ~/rpmbuild/SPECS
# wget https://github.com/brnt/openresty-rpm-spec/raw/master/ngx_openresty.spec

– SRECファイル編集

# cp -p ngx_openresty.spec ngx_openresty.spec.org
# vi ngx_openresty.spec
– 変更箇所

ダウンロードしたバージョンに合わせてVersionを変更。今回手を入れたのはわずかにここだけw

2c2
< Version:      1.7.7.1
---
> Version:      1.9.7.2

ファイルはSPECファイルを編集しない限り、主に/usr/local/openresty以下に配置される。
変更する場合は以下の”define homedir”部分を任意のパスに書き換える。

%define homedir %{_usr}/local/openresty

– パッケージをビルド

# rpmbuild -ba ~/rpmbuild/SPECS/ngx_openresty.spec

– コンパイルされたパッケージを確認

# ls -al ~/rpmbuild/RPMS/x86_64/
total 5008
drwxr-xr-x 2 root root    4096 May 13 19:22 .
drwxr-xr-x 3 root root    4096 May 13 19:21 ..
-rw-r--r-- 1 root root 1245760 May 13 19:21 ngx_openresty-1.9.7.2-1.el6.x86_64.rpm
-rw-r--r-- 1 root root 3861660 May 13 19:22 ngx_openresty-debuginfo-1.9.7.2-1.el6.x86_64.rpm

3)インストール

– インストール前の依存関係確認

openrestyはnginxとの置き換えになるので、まずnginxをアンインストールするところから。
事前に必要なコンフィグをバックアップしておきましょう。

# rpm -ivh --test ngx_openresty-1.9.7.2-1.el6.x86_64.rpm
Preparing...                ########################################### [100%]
        file /etc/init.d/nginx from install of ngx_openresty-1.9.7.2-1.el6.x86_64 conflicts with file from package nginx-1.0.15-12.el6.x86_64

nginxとのコンフリクトを確認。

– nginxをアンインストール

# rpm -e --test nginx
# rpm -e nginx

このとき、nginxと一緒にインストールされていたcollectd-nginxなどは依存関係エラーが出なかったのでそのままアンインストールせず。

– インストール

# rpm -ivh ngx_openresty-1.9.7.2-1.el6.x86_64.rpm
Preparing... ########################################### [100%]
nginx:x:498:
nginx:x:498:498:Nginx web server:/var/lib/nginx:/sbin/nologin
1:ngx_openresty ########################################### [100%]

インストール後、/usr/local/openresty/以下にファイルが配置されていることを確認したら、ひとまずオッケー。
プロセスの操作は/etc/init.d/nginxで行うので特に違和感はないが、コンフィグの配置場所は/etc/nginx/から/usr/local/openresty/nginx/conf/ に変わるので要注意。
すでに使用しているファイルがあれば移動しましょう~

※アイキャッチ画像はこちらから拝借しました!
http://www.linuxsecrets.com/blog/9web-server-howto-and-installation/2015/08/21/1631-complete-guide-installing-openresty-a-nginx-full-fledged-web-server-on-redhat-scientific-linux-debian

 - nginx, メモ, 作業ログ ,