Last Updated on 2022年9月29日 by かんりにん
開発チームから”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