在 ubuntu 18.x 上编译 nginx 和 naxsi

在 ubuntu 18.x 上编译 nginx 和 naxsi

我正在尝试在 ubuntu 18.x 上安装 naxsi。经过谷歌搜索和尝试后我发现:

nginx-naxsi 已不再适用于 ubuntu,因此您必须自行编译。很好地了解我安装了哪些模块和设置

apt install nginx-extras

然后nginx -V

我发现了这个:

nginx version: nginx/1.14.0 (Ubuntu)
built with OpenSSL 1.1.0g  2 Nov 2017
TLS SNI support enabled
configure arguments: 

--with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-mcUg8N/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' \
--prefix=/usr/share/nginx \
--conf-path=/etc/nginx/nginx.conf \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--lock-path=/var/lock/nginx.lock \
--pid-path=/run/nginx.pid \
--modules-path=/usr/lib/nginx/modules \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ 
--with-debug \
--with-pcre-jit \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_auth_request_module \
--with-http_v2_module \
--with-http_dav_module \
--with-http_slice_module \ 
--with-threads \
--with-http_addition_module \
--with-http_flv_module \
--with-http_geoip_module=dynamic \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_image_filter_module=dynamic \
--with-http_mp4_module \
--with-http_perl_module=dynamic \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_sub_module \
--with-http_xslt_module=dynamic \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-headers-more-filter \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-auth-pam \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-cache-purge \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-dav-ext \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-ndk \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-echo \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-fancyindex \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/nchan \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-lua \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/rtmp \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-uploadprogress \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-upstream-fair \
--add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-subs-filter 

所以我组装成这批

#!/usr/bin/env bash

apt-get install -y libpcre3 libpcre3-dev libssl-dev unzip make \
  libgoogle-perftools-dev google-perftools jq gcc
mkdir /tmp/ngxbuild
cd /tmp/ngxbuild
latestNginx=$(curl -s http://hg.nginx.org/nginx/tags |
  grep "^ *release-" | head -1 | cut -c 9-)
latestNaxsi=$(curl -s https://api.github.com/repos/nbs-system/naxsi/releases |
  jq -r .[].tag_name | grep -v rc | head -1)
wget -q http://nginx.org/download/nginx-${latestNginx}.tar.gz
wget -q https://github.com/nbs-system/naxsi/archive/${latestNaxsi}.tar.gz
tar xzf nginx-${latestNginx}.tar.gz
tar xzf ${latestNaxsi}.tar.gz
cd nginx*


./configure --conf-path=/etc/nginx/nginx.conf \
    --add-module=../naxsi-${latestNaxsi}/naxsi_src/ \

    --with-cc-opt='-g -O2 -fdebug-prefix-map=/b
    (... see up for complete list of parameters)
    ...
    --add-dynamic-module=/build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-subs-filter 

make -j 4
make install    

但会出现错误...

--with-debug : unknow command
--with-pcre-jit : unknow command

...
--with-http_ssl_module : unknow command 

and module like /build/nginx-mcUg8N/nginx-1.14.0/debian/modules/http-subs-filter is from library or I've to download

所以我只想在 ubuntu 18.x 上安装 nginx - naxsi,有什么解决方案吗?

答案1

编译时的选项将被解释为命令,这就是为什么它说command not found.您很可能没有转义换行符,因此 shell 认为下一行的选项是要运行的命令。

您的示例中的换行符未正确转义:

./configure --conf-path=/etc/nginx/nginx.conf \
--add-module=../naxsi-${latestNaxsi}/naxsi_src/ \

--with-cc-opt='-g -O2 -fdebug-prefix-map=/b

相关内容