/usr/local/src
にソースコードの配置、root権限でlua-nginx-moduleを参考にビルドしています。AmazonLinux2で試していますが他のディストリビューションでもビルドできると思います。
準備
最初にビルドするためにCとC++のコンパイラのインストールをします。
yum install -y gcc gcc-c++
LuaJITのビルド
Releases · openresty/luajit2で確認して最新版(v2.1-20200102)をビルドします。
cd /usr/local/src
wget https://github.com/openresty/luajit2/archive/v2.1-20200102.tar.gz
tar -zxvf v2.1-20200102.tar.gz
rm v2.1-20200102.tar.gz
cd luajit2-2.1-20200102
make
make install
ngx_devel_kitのダウンロード
Releases · vision5/ngx_devel_kitから最新安定版(v0.3.1)のリンクをコピーしてwgetでダウンロードします。
cd /usr/local/src
wget https://github.com/vision5/ngx_devel_kit/archive/v0.3.1.tar.gz
tar -zxvf v0.3.1.tar.gz
rm v0.3.1.tar.gz
lua-nginx-moduleのダウンロード
Releases · openresty/lua-nginx-moduleから最新安定版(v0.10.15)のリンクをコピーしてwgetでダウンロードします。
cd /usr/local/src
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.15.tar.gz
tar -zxvf v0.10.15.tar.gz
rm v0.10.15.tar.gz
lua-resty-coreのダウンロード
Releases · openresty/lua-resty-coreから最新安定版(v0.1.17)のリンクをコピーしてwgetでダウンロードします。
cd /usr/lib
wget https://github.com/openresty/lua-resty-core/archive/v0.1.17.tar.gz
tar -zxvf v0.1.17.tar.gz
rm v0.1.17.tar.gz
cd /usr/local/share/lua/5.1
mkdir resty
cd resty
ln -s /usr/lib/lua-resty-core-0.1.17/lib/resty/core core
ln -s /usr/lib/lua-resty-core-0.1.17/lib/resty/core.lua core.lua
lua-resty-lrucacheのダウンロード
Releases · openresty/lua-resty-lrucacheから最新安定版(v0.09)のリンクをコピーしてwgetでダウンロードします。
cd /usr/lib
wget https://github.com/openresty/lua-resty-lrucache/archive/v0.09.tar.gz
tar -zxvf v0.09.tar.gz
rm v0.09.tar.gz
cd /usr/local/share/lua/5.1/resty
ln -s /usr/lib/lua-resty-lrucache-0.09/lib/resty/lrucache lrucache
ln -s /usr/lib/lua-resty-lrucache-0.09/lib/resty/lrucache.lua lrucache.lua
Nginxのビルド
moduleを追加してビルドします。
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.1
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --with-ld-opt="-Wl,-rpath,/usr/local/lib" --add-module=/usr/local/src/ngx_devel_kit-0.3.1 --add-module=/usr/local/src/lua-nginx-module-0.10.15 --with-pcre=/usr/local/src/pcre-8.43 --with-zlib=/usr/local/src/zlib-1.2.11
make
make install
Nginxの起動
最後に/usr/sbin/nginx
とすれば起動できます。エラーが無ければ成功です🎉
luaのロードパス追加
必要に応じてnginx.conf
のhttpディレクティブに以下の設定を追加することでロードするパスを追加できます。
lua_package_path "/usr/local/src/xxxxx/lib/?.lua;/usr/local/src/xxx/lib/?.lua;;";