Я пытаюсь скомпилировать 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?
Я использовал следующее, чтобы получить openssl для nginx:
https://ethitter.com/2016/06/nginx-openssl-1-0-2-http-2-alpn/
Все остальные попытки либо не увенчались успехом, либо были слишком неуклюжими.
Надеюсь, это поможет другому ...
Если вы хотите проверить, что libssl установлен в нужном месте, вы можете ввести which openssl
а потом ldd /path/to/openssl
.
Даже если OpenSSL уже установлен (brew install openssl
), сам configure предлагает обходной путь, который у меня сработал:
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
--with-openssl=~/GitHub/openssl/openssl
Если кто-то все еще сталкивается с проблемой компиляции nginx из исходного кода с ошибкой, связанной с pcre, выполните компиляцию с атрибутом "--with-pcre". И для предоставления пути pcre не указывайте установленный путь. Укажите путь к программному обеспечению pcre.
./configure
делать
sudo make install
Затем укажите путь к исходному пути 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
Спасибо.