麒麟服务器在编译Nginx时报错
这是一台没有公网的麒麟服务器(海思芯片,x86架构),全部只能本地安装。之前在有公网的服务器上似乎没有遇到问题。
问题似乎是跟openssl有关,用了3.0.x和1.1.x都有问题。奇怪的是相同的包在centos上面没问题,囧。
cd /usr/local/openssl1.1.1w \
&& if [ -f Makefile ]; then make clean; fi \
&& ./config --prefix=/usr/local/openssl1.1.1w/.openssl no-shared no-threads \
&& make \
&& make install_sw LIBDIR=lib
/bin/sh: line 2: ./config: No such file or directory
make[1]: *** [objs/Makefile:1469: /usr/local/openssl1.1.1w/.openssl/include/openssl/ssl.h] Error 127
make[1]: Leaving directory '/mnt/setupfiles/nginx-1.26.2'
make: *** [Makefile:10: build] Error 2
解决办法:
在Nginx目录中找到这个文件auto/lib/openssl/conf,修改
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
删除多余的.openssl
CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
原文件: