Я пытаюсь скомпилировать nginx из исходного кода с включенным модулем SSL. Когда я запускаю эту команду:
./configure --with-http_ssl_module
он делает обычные проверки, чтобы убедиться, что все установлено правильно, а затем появляется следующее:
проверка на наличие библиотеки OpenSSL ... не найдена
./configure: error: для модулей SSL требуется библиотека OpenSSL. Вы можете либо не включать модули, либо устанавливать библиотеку OpenSSL в систему, либо создавать библиотеку OpenSSL статически из исходного кода с помощью nginx, используя параметр --with-openssl =.
Я точно знаю, что OpenSSL установлен, потому что когда openssl version
я получаюOpenSSL 1.0.1 14 Mar 2012
Так что я довольно озадачен. Я подумал, что, возможно, OpenSSL не находится в месте по умолчанию, поэтому nginx не может его найти, но я понятия не имею, где он находится, так как он был предустановлен на сервере. Как я могу узнать, где это?
Сервер работает под управлением Ubuntu 12.04 LTS.
Благодарю.
Ответы:
Скорее всего, вы пропустили
libssl-dev
посылку.Но почему бы не избавить себя от всех проблем и просто использовать PPA для nginx ?
источник
apt-get
? Я подумал, что лучший способ убедиться, что я всегда получаю последнюю версию программного обеспечения, - это скомпилировать ее из источника с веб-сайта.libssl-dev
работала. :)Я использовал следующее, чтобы получить 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).Если вы хотите проверить, что libssl установлен в нужном месте, вы можете набрать
which openssl
и затемldd /path/to/openssl
.источник
Даже когда OpenSSL уже установлен (
brew install openssl
), сама конфигурация предлагает обходной путь, который работал для меня:./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
--with-openssl=~/GitHub/openssl/openssl
источник
--with-openssl=
указывает на клонированный репозиторий openssl github? Вы можете отредактировать свой ответ, чтобы отразить это, поскольку это может ввести в заблуждение людей, не имеющих достаточного понимания.Если кто-то все еще сталкивается с проблемой компиляции nginx из исходного кода с ошибкой, связанной с pcre, выполните компиляцию с атрибутом "--with-pcre". А для обеспечения пути pcre не указывайте установленный путь. Укажите путь к программному обеспечению pcre.
Затем укажите путь к исходному файлу pcre.
В моем случае,
Спасибо.
источник