私信 ”运维笔谈”,对话回复 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》PDF。
有个朋友告诉我他那边升级了Openssl,然后重新编译NGINX的时候,指定了Openssl的安装路径,编译报错了,后来他直接指定Openssl的安装包就可以了。我问他Openssl的安装路径是哪个?他告诉我是“ /usr/local/openssl ” ,这是一个非标准化的Openssl安装路径,我猜测NGINX在编译的时候可能没有找到对应的库文件位置。
那么在CentOS 7下,我们通常用yum安装的 Openssl 标准化的安装路径具体是哪些呢?
可执行文件的标准路径我们使用系统的包管理器(如yum)安装OpenSSL时,其可执行文件(如openssl命令)通常会被放置在/usr/bin/目录下。
openssl可执行文件标准路径
库文件的标准路径库文件(.so文件),使用系统包管理器安装,它们通常会被放置在/usr/lib/(32位系统)或/usr/lib64/(64位系统)目录下。
库文件
头文件的标准路径头文件(.h文件),如果使用系统包管理器安装,通常会被放置在/usr/include/openssl/目录下。
头文件
非标准Openssl安装路径,NGINX编译的时候如何指定呢?假如我们编译安装了Openssl,并且路径是 /usr/local/openssl,我们需要指定下库文件和头文件的具体路径,参考如下:
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH export CPATH=/usr/local/openssl/include:$CPATH ./configure --with-openssl=/path/to/openssl # 注意这里的路径可能不需要,除非你的 OpenSSL 源码有特殊的配置脚本 make sudo make install