ไม่สามารถรวบรวม nginx ด้วยการรองรับ SSL ไม่พบ OpenSSL


19

ฉันกำลังพยายามรวบรวม nginx จากแหล่งที่มาพร้อมกับเปิดใช้งานโมดูล SSL เมื่อฉันเรียกใช้คำสั่งนี้:

./configure --with-http_ssl_module

มันจะทำการตรวจสอบตามปกติเพื่อดูว่าทุกอย่างได้รับการติดตั้งอย่างถูกต้องหรือไม่จากนั้นจะปรากฏขึ้น:

กำลังตรวจหาไลบรารี OpenSSL ... ไม่พบ

./configure: ข้อผิดพลาด: โมดูล SSL ต้องการไลบรารี OpenSSL คุณไม่สามารถเปิดใช้งานโมดูลหรือติดตั้งไลบรารี OpenSSL ลงในระบบหรือสร้างไลบรารี OpenSSL แบบคงที่จากแหล่งที่มาด้วย nginx โดยใช้ตัวเลือก --with-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แพ็คเกจ

แต่ทำไมไม่ช่วยตัวคุณเองให้ลำบากและใช้PPA สำหรับ nginx ?


PPA คืออะไรกันแน่ จากสิ่งที่ฉันสามารถรวบรวมผู้คนสามารถอัปโหลดแพคเกจจะได้รับการติดตั้งโดยใช้apt-get? ฉันคิดว่าวิธีที่ดีที่สุดเพื่อให้แน่ใจว่าฉันได้รับซอฟต์แวร์เวอร์ชันล่าสุดอยู่เสมอเพื่อรวบรวมจากแหล่งที่มาจากเว็บไซต์
James Linton

1
PPAs เป็นคลังเก็บแพคเกจส่วนตัว ดังที่คุณกล่าวว่าพวกเขาจะแจกจ่ายแพ็คเกจ dpkg การรวบรวมจากแหล่งที่มาอาจทำให้คุณได้รับเวอร์ชันล่าสุด แต่ไม่จำเป็นเสมอไป ข้อมูลสำหรับ Ubuntu และ PPA สามารถดูได้ที่นี่: wiki.nginx.org/Install#Official_Debian.2FUbuntu_packages
Christopher Perrin

ข้อมูลเกี่ยวกับ nginx wiki นั้นดี ในที่สุดมันจะนำคุณไปสู่ ​​PPA ที่ฉันเชื่อมโยง :)
Michael Hampton

เอาล่ะฉันจะใช้ PPA ในอนาคต แต่สำหรับปัญหานี้การติดตั้งใช้libssl-devงานได้ :)
James Linton

Nginx PPA เป็นวิธีการดำเนินการตามที่ให้ไบนารี Nginx อย่างเป็นทางการล่าสุดผ่าน apt โดยทั่วไปแล้ว Ubuntu จะให้ Nginx รุ่นที่ออกมาไม่กี่ตัวเพื่อการสนับสนุน แต่การใช้ Nginx PPA คุณสามารถรับรุ่นล่าสุดได้จาก Nginx.org การใช้วิธีนี้ง่ายกว่าการรวบรวมจากซอร์สโค้ดและยอดเยี่ยมสำหรับสคริปต์การจัดสรรอัตโนมัติ มันช่วยให้ apt ของคุณในระบบของคุณทราบถึงเวอร์ชัน Nginx ที่ติดตั้งอยู่ในปัจจุบันทำให้การอัพเดตที่ใช้ apt ง่ายขึ้นมาก เว้นแต่จะมีเหตุผลเฉพาะในการรวบรวมจากแหล่งที่มาวิธีการ PPA นั้นง่ายมากที่จะรักษาในการผลิต
โจ J

1

ฉันใช้สิ่งต่อไปนี้เพื่อรับ openssl สำหรับ nginx:

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

ความพยายามอื่น ๆ ทั้งหมดก็ไม่ได้ผล

หวังว่าจะช่วยได้อีก ...


ช่วยให้ฉันเข้าใจว่าการ--with-openssl=ตั้งค่าสถานะคือชี้ไปที่ไฟล์ต้นฉบับ หากคุณต้องการเชื่อมโยงกับ OpenSSL ที่คอมไพล์แล้ว / ระบบที่ nginx ./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 opensslldd /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=ชี้ไปที่ gslub openssl โคลน repo? คุณอาจพิจารณาแก้ไขคำตอบเพื่อสะท้อนสิ่งนี้เนื่องจากอาจทำให้ผู้อื่นสับสนโดยไม่เข้าใจเพียงพอ
Jamie Lindsey

ใช่ / GitHub / openssl / openssl เป็นที่เก็บโคลนของgithub.com/openssl/openssl.git
Pnemonic

0

หากใครยังคงประสบปัญหาในการรวบรวม nginx จากแหล่งที่มากับข้อผิดพลาดที่เกี่ยวข้องกับ pcre รวบรวมด้วยแอตทริบิวต์ "--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.