1. ホーム
  2. スクリプト・コラム
  3. ルア

Luaをnginxにコンパイルするステップバイステップ方式

2022-02-10 19:22:25

Luaをnginxにコンパイルする方法

1. まずlua-jitをインストールします。ウェブにはluaもダウンロードできると書いてありますが、lua-jitの方が以下の点で効率的です。 http://luajit.org/download.html
のバージョン2.0.3をダウンロードしました。
ダウンロード・解凍後、make && make installするだけで、デフォルトで/usr/localディレクトリにインストールされます。

2. ngx devel パッケージをダウンロードします。
アドレス https://github.com/simpl/ngx_devel_kit/tags
これはnginxの拡張機能であり、コンパイルする必要がないことに注意してください。

3. nginx用のluaエクステンションをダウンロードする

https://github.com/openresty/lua-nginx-module/archive/v0.9.8.tar.gz

4. 2つの変数をエクスポートする

コピーコード コードは以下の通りです。

export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-<VERSION>

LUAJITは、luajitがインストールされているディレクトリを示します。

5. 次のステップでは、nginx をコンパイルします。

コピーコード コードは以下の通りです。

 . /configure --prefix=/opt/nginxrw --with-http_gzip_static_module --with-http_stub_status_module
--with-http_ssl_module --add-module=/data/src/lua-nginx-module-0.9.8  
--add-module=/data/src/ngx_devel_kit-0.2.19

2つの --add-module は lua 用の nginx モジュールと ngx devel パッケージの拡張を表します。

起動時に、ライブラリへのパスが見つからないと報告されることがあります。

コピーコード コードは以下の通りです。

sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory

ldd コマンドを使用すると、バイナリが参照しているダイナミックライブラリを確認することができます。

解決策

コピーコード コードは以下の通りです。

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

OK、コンパイルに成功したら、Luaスクリプトの作成を開始します。