SSL 지원으로 nginx를 컴파일 할 수 없습니다. OpenSSL을 찾을 수 없습니다


19

SSL 모듈이 활성화 된 소스에서 nginx를 컴파일하려고합니다. 이 명령을 실행할 때 :

./configure --with-http_ssl_module

모든 것이 올바르게 설치되었는지 확인하기 위해 일반적인 검사를 수행 한 다음 팝업이 표시됩니다.

OpenSSL 라이브러리 확인 중 ... 찾을 수 없음

./configure : 오류 : SSL 모듈에는 OpenSSL 라이브러리가 필요합니다. --with-openssl = 옵션을 사용하여 모듈을 활성화하거나 OpenSSL 라이브러리를 시스템에 설치하거나 nginx를 사용하여 소스에서 OpenSSL 라이브러리를 정적으로 빌드 할 수 없습니다.

내가 할 때 나는 OpenSSL이 설치되어 있다는 사실을 알고 있기 때문에 openssl version내가 얻을OpenSSL 1.0.1 14 Mar 2012

그래서 나는 꽤 혼란스러워합니다. OpenSSL이 기본 위치에 있지 않다고 생각했기 때문에 nginx가 찾을 수없는 이유는 있지만 서버와 함께 사전 설치 된 위치는 알 수 없습니다. 이것이 어디에 있는지 어떻게 알 수 있습니까?

서버가 Ubuntu 12.04 LTS를 실행 중입니다.

감사.


2
yum (CentOS | redhat | fedora)을 사용하는 사람들은 openssl-devel을 설치 한 다음 명령을 실행하십시오.
maverick3

답변:


29

libssl-dev패키지 가 없을 가능성이 큽니다 .

그러나 왜 모든 문제를 해결하고 nginx에 PPA를 사용 합니까?


PPA 란 정확히 무엇입니까? 내가 수집 할 수있는 것에서 apt-get?를 사용하여 설치할 패키지를 업로드 할 수 있습니다 . 항상 최신 버전의 소프트웨어를 사용하는 가장 좋은 방법은 웹 사이트의 소스에서 컴파일하는 것이라고 생각했습니다.
James Linton

1
PPA는 개인 패키지 아카이브입니다. 당신이 말했듯이, 그들은 dpkg 패키지를 배포해야합니다. 소스에서 컴파일하면 최신 버전을 얻을 수 있지만 항상 필요한 것은 아닙니다. 우분투와 PPA에 대한 정보는 여기에서 찾을 수 있습니다 : wiki.nginx.org/Install#Official_Debian.2FUbuntu_packages
크리스토퍼 페린을

nginx 위키의 정보가 좋습니다. 결국 내가 연결 한 PPA로 연결됩니다. :)
Michael Hampton

감사합니다. 앞으로 PPA를 사용할 것입니다. 그러나이 문제의 경우 설치가 libssl-dev효과적이었습니다. :)
James Linton

Nginx PPA는 apt를 통해 최신 공식 Nginx 바이너리를 제공하기 때문에 갈 길입니다. 우분투는 일반적으로 지원 목적으로 몇 가지 릴리스의 Nginx 버전을 제공하지만 Nginx PPA를 사용하면 Nginx.org에서 최신 릴리스를 얻을 수 있습니다. 소스에서 컴파일하는 것보다이 방법을 사용하는 것이 훨씬 쉽고 자동화 된 프로비저닝 스크립트에 적합합니다. 현재 시스템에 설치된 Nginx 버전을 인식하여 apt 기반 업데이트를 훨씬 쉽게 만듭니다. 소스에서 컴파일해야 할 특별한 이유가 없다면 PPA 접근 방식은 프로덕션 환경에서 유지 관리가 훨씬 쉽습니다.
Joe J

1

nginx에 대해 openssl을 얻기 위해 다음을 사용했습니다.

https://ethitter.com/2016/06/nginx-openssl-1-0-2-http-2-alpn/

다른 모든 시도는 효과가 없었거나 어색해졌습니다.

이것이 다른 도움이되기를 바랍니다 ...


--with-openssl=플래그가 소스 파일 을 가리키는 지 알아내는 데 도움 이되었습니다 . 당신의 nginx의가 있음을 이미 컴파일 / 시스템 OpenSSL에 대한 링크를 원하는 경우 ./configure볼 찾을 수 없습니다 이 포럼 게시물 : --with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"(YMMV을).
vesperto

추가 참조 @vesperto
skidadon

0

경우에 당신은 당신이 입력 할 수 libssl에 올바른 장소에 설치되어 있는지 확인하려면 which openssl다음과 ldd /path/to/openssl.


0

OpenSSL이 이미 설치되어 있어도 ( brew install openssl) 구성 자체에서 해결 방법을 제안합니다.

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master--with-openssl=~/GitHub/openssl/openssl


옵션 --with-openssl=이 복제 된 openssl github 저장소를 가리키는가? 충분히 이해하지 못하면 사람들에게 혼란을 줄 수 있으므로 이것을 반영하기 위해 답을 편집하는 것을 고려할 수 있습니다.
Jamie Lindsey

예, / GitHub / openssl / openssl은 github.com/openssl/openssl.git
Pnemonic

0

pcre 관련 오류로 소스에서 nginx를 컴파일하는 데 여전히 문제가있는 경우 "--with-pcre"속성으로 컴파일하십시오. pcre 경로를 제공하려면 설치된 경로를 제공하지 마십시오. pcre 소프트웨어 경로를 제공하십시오.

  1. 다음과 함께 pcre 설치

./configure

하다

sudo 설치하다

그런 다음 pcre 소스 경로의 경로를 제공하십시오.

./configure --prefix=/path/to/nginxToBeInstalled/mayBeInOpt/nginx-1.16.0/ --with-openssl=/path/to/installed/openssl-1.1.1b/ --with-pcre=/path/to/your/downloaded/extracted/pcre-8.42

나의 경우에는,

./configure --prefix=/opt/nginx-1.16.0/ --with-openssl=/opt/openssl-1.1.1b/ --with-pcre=/media/username/personal/Software/pcre-8.42

감사합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.