安装nginx环境,含lua时遇到报错ngx_http_lua_common.h:20:20: error: luajit.h: No such file or directory的解决

下面是安装nginx+lua环境时使用的相关模块及版本,ngx_devel_kit和lua-nginx-module模块用的都是github上最新的模块.并进行了LuaJIT的安装。

  

#Install nginx by 2019-12-12
yum -y install gcc gcc-c++ autoconf automake  
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
useradd  -s /sbin/nologin   -M   nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.14.2.tar.gz
wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14.tar.gz
wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz\
git clone git://github.com/yzprofile/ngx_http_dyups_module.git
tar zxf v0.3.0.tar.gz
tar zxf LuaJIT-2.1.0-beta3.tar.gz
tar zxf v0.10.14.tar.gz
tar zxf nginx-1.14.2.tar.gz
yum -y  install lua-devel
cd LuaJIT-2.1.0-beta3
make && make install
cd ..
cd nginx-1.14.2

./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx   --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module  --with-pcre --with-http_stub_status_module  --with-http_addition_module --with-http_gzip_static_module  --with-file-aio --with-http_dav_module --add-module=../ngx_devel_kit-0.3.0 --add-module=../lua-nginx-module-0.10.14 --add-module=../ngx_http_dyups_module
make
make install

  

[root@lua src]# ll
total 3520
-rw-r--r--  1 root  root     1213 Dec 12 17:12 install-nginx.sh
drwxr-xr-x  6 nginx nginx     100 May  2  2017 LuaJIT-2.1.0-beta3
-rw-r--r--  1 root  root  1025180 May  2  2017 LuaJIT-2.1.0-beta3.tar.gz
drwxrwxr-x 10 root  root      225 Feb 24  2019 lua-nginx-module-0.10.14
-rw-r--r--  1 root  root   829900 Dec 12 17:23 lua-nginx-module-master.zip
drwxr-xr-x  9  1001  1001     186 Dec 12 16:57 nginx-1.14.2
-rw-r--r--  1 root  root  1015384 Dec  4  2018 nginx-1.14.2.tar.gz
drwxrwxr-x  9 root  root      221 May 10  2016 ngx_devel_kit-0.3.0
drwxr-xr-x  4 root  root      187 Dec 12 17:04 ngx_http_dyups_module
-rw-r--r--  1 root  root   654097 Dec 12 16:56 v0.10.14.tar.gz
-rw-r--r--  1 root  root    66455 Dec 12 16:56 v0.3.0.tar.gz

  .configure执行是成功的,但是在进行make的时候遇到报错:ngx_http_lua_common.h:20:20: error: luajit.h: No such file or directory,详细报错内容如下:

In file included from ../lua-nginx-module-0.10.15/src/ngx_http_lua_script.h:11:0,
                 from ../lua-nginx-module-0.10.15/src/ngx_http_lua_script.c:13:
../lua-nginx-module-0.10.14/src/ngx_http_lua_common.h:20:20: fatal error: luajit.h: No such file or directory
#include <luajit.h>
                    ^
compilation terminated.
make[1]: *** [objs/addon/src/ngx_http_lua_script.o] Error 1
make[1]: Leaving directory `/usr/local/src/nginx-1.14.2'
make: *** [build] Error 2

 

解决方法:把lib的路径写入/etc/profile中

# vim /etc/profile
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/user/local/include/luajit-2.1
# source /etc/profile

 重新编译即可成功! 

 

[root@lua src]# nginx
nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
[root@lua src]# find / -name libluajit-5.1.so.2
/usr/local/lib/libluajit-5.1.so.2
[root@lua src]# ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
[root@lua src]# nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-pcre --with-http_stub_status_module --with-http_addition_module --with-http_gzip_static_module --with-file-aio --with-http_dav_module --add-module=../ngx_devel_kit-0.3.0 --add-module=../lua-nginx-module-0.10.14 --add-module=../ngx_http_dyups_module