我正在尝试安装 nginx,无论我做什么,nginx 似乎都找不到我的 openssl 路径。看起来它正在搜索任何 openssl 目录中不存在的文件。下面是我的 make 输出。我尝试为 nginx 指定各种路径来查找 openssl。
[root@server nginx-0.8.54]# make
make -f objs/Makefile
make[1]: Entering directory `/root/nginx-0.8.54'
cd /usr/local/ssl \
&& make clean \
&& ./config --prefix=/usr/local/ssl/.openssl no-shared no-threads \
&& make \
&& make install LIBDIR=lib
make[2]: Entering directory `/usr/local/ssl'
make[2]: *** No rule to make target `clean'. Stop.
make[2]: Leaving directory `/usr/local/ssl'
make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 2
make[1]: Leaving directory `/root/nginx-0.8.54'
make: *** [build] Error 2
有人对此有什么想法吗?
答案1
configure
当您的 nginx使用相对路径时也会发生这种情况。如果/
使用完整路径,它会更可靠地找到库。
不起作用:./configure --with-openssl=../openssl-source
作品:./configure --with-openssl=/home/build/src/openssl-source
答案2
./configure —with-cc-opt="-I/usr/local/opt/openssl/include" --with-ld-opt="-L/usr/local/opt/openssl/lib"
答案3
运行“yum install openssl-devel”似乎比切换到 ubuntu 容易得多。
与OP有同样的问题。我安装了 openssl,但 nginx 在编译时可以找到它,但指向 libssl-devel 的指针帮助了我
答案4
如果您尝试使用nginx
进行构建macOS
并openssl
通过 进行安装brew
,则该openssl
库将安装在如下路径下:/usr/local/opt/openssl
。从brew info openssl
该公式仅是 keg,这意味着它没有符号链接到 /usr/local,
因为 Apple 已弃用 OpenSSL,转而使用自己的 TLS 和加密库。
openssl
在这种情况下,正如 @Bingnan 所说,您可以让配置脚本知道via--with-cc-opt
和的 include 和 lib 路径--with-ld-opt
:
./configure --with-cc-opt="-I/usr/local/opt/openssl/include" --with-ld-opt="-L/usr/local/opt/openssl/lib"