无法构建自定义配置的 nginx

无法构建自定义配置的 nginx

我正在使用 UBUNTU 服务器 22.04、openssl 版本 3.0.2,并且我试图构建自定义配置的 NGINX 作为邮件服务器的代理,但是当我运行“make”时,它给出了错误。为此,我参考了以下来源:

https://www.alibabacloud.com/blog/how-to-build-nginx-from-source-on-ubuntu-20-04-lts_597793

https://docs.nginx.com/nginx/admin-guide/mail-proxy/mail-proxy/

http://nginx.org/en/docs/configure.html

我使用命令下载了 NGINX 源代码:wget http://nginx.org/download/nginx-1.21.6.tar.gz

提取并更改目录后,我运行了一个自定义命令:

./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --with-pcre --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_image_filter_module=dynamic --modules-path=/etc/nginx/modules --with-http_v2_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module --with-mail --with-mail_ssl_module --with-openssl=/usr/include/openssl/

但此后当我运行“make”命令时出现错误:

make -f objs/Makefile make[1]: 进入目录 '/home/ubuntu/nginx-build/nginx-1.21.6' cd /usr/include/openssl/ \ && if [ -f Makefile ]; then make clean; fi \ && ./config --prefix=/usr/include/openssl//.openssl no-shared no-threads \ && make \ && make install_sw LIBDIR=lib /bin/sh: 3: ./config: 未找到 make[1]: *** [objs/Makefile:1705: /usr/include/openssl//.openssl/include/openssl/ssl.h] 错误 127 make[1]: 离开目录 '/home/ubuntu/nginx-build/nginx-1.21.6' make: *** [Makefile:10: build] 错误 2

我的假设: 我认为发生此错误是因为我为--with-openssl参数提供了错误的路径。如果是这种情况,请说明如何找到我应该为该参数分配的正确路径,或者如果存在其他问题,请给我提供解决方案。

答案1

看起来你正试图将 NginX 的./configure脚本指向你安装的 OpenSSL 版本,而你实际上需要下载源代码 [https://www.openssl.org/source],将其解压到其自己的目录,然后指向--with-openssl该目录。这将导致make一次性从源代码构建 NginX 和 OpenSSL。

如果您想使用已安装的 OpenSSL 版本,请--with-openssl完全省略并继续。

话虽如此,@steeldriver 关于不需要从头开始构建 NginX 的说法可能是正确的,因为维护自定义构建可能会很麻烦。

编辑:一些进一步的解释和背景:

--with-http_ssl_module:此标志告诉.\configure脚本您想要在 NginX 中启用 HTTPS 协议支持。它本身将使用系统安装的 OpenSSL 版本。

--with-openssl:此标志指示.\configure使用 NginX 从源代码构建 OpenSSL,并且不是要使用系统安装的版本,通常与标志一起使用--with-openssl-opt以定制 OpenSSL 构建,这也是使用您的操作系统可能不支持的较新版本的 OpenSSL 的好方法。

大多数(如果不是全部)构建标志均在 Nginx 文档中描述,具体如下:https://nginx.org/en/docs/configure.html

相关内容