Nginx 1.7.4 + LibreSSL
Maxim Dounin
mdounin at mdounin.ru
Wed Aug 27 01:50:35 UTC 2014
Hello!
On Tue, Aug 26, 2014 at 08:36:30PM -0400, Sarymian wrote:
> Ну и опять же...
> При первом варианте:
> ./configure --user=www-data --group=www-data
> --with-pcre=/home/install/pcre-8.35/ --with-zlib=/home/install/zlib-1.2.8/
> --with-http_ssl_module --with-cc-opt="-I
> `pwd`/../libressl-2.0.5/.libressl/include" --with-ld-opt="-L
> `pwd`/../libressl-2.0.5/.libressl/lib" --without-http_geo_module
> --without-http_proxy_module --without-http_ssi_module
> --without-http_upstream_ip_hash_module --with-http_gzip_static_module
> --with-http_stub_status_module --with-ipv6
> --error-log-path=/mnt/log/nginx/error.log --without-mail_pop3_module
> --without-mail_imap_module --without-mail_smtp_module
> --http-log-path=/mnt/log/nginx/access.log
> --http-client-body-temp-path=/mnt/log/nginx/http-temp/client_body_temp
> --http-proxy-temp-path=/mnt/log/nginx/http-temp/proxy_temp
> --http-fastcgi-temp-path=/mnt/log/nginx/http-temp/fastcgi_temp
> --http-uwsgi-temp-path=/mnt/log/nginx/http-temp/uwsgi_temp
> --http-scgi-temp-path=/mnt/log/nginx/http-temp/scgi_temp
>
> Ошибку дает что не может найти OpenSSL (хотя make && make install сделал).
> ./configure: error: SSL modules require the OpenSSL library.
> You can either do not enable the modules, or install the OpenSSL library
> into the system, or build the OpenSSL library statically from the source
> with nginx by using --with-openssl=<path> option.
Вероятно, вы забыли таки собрать и установить по указанному пути
LibreSSL. После "./configure ..." имело смысл также запустить
make и make install (а перед - почистить всё).
> --with-openssl= уже задавал и как "`pwd`/../libressl-2.0.5/" и как
Как уж говорилось ранее, параметр --with-openssl задавать не надо,
если вы хотите собирать nginx с LibreSSL.
[...]
> ./configure --user=www-data --group=www-data
> --with-pcre=/home/install/pcre-8.35/ --with-zlib=/home/install/zlib-1.2.8/
> --with-http_ssl_module --with-cc-opt="-I
> /home/install/libressl-2.0.5/include"
> --with-ld-opt="-Wl,-rpath=/home/install/libressl-2.0.5/ssl/.libs"
> --without-http_geo_module --without-http_proxy_module
> --without-http_ssi_module --without-http_upstream_ip_hash_module
> --with-http_gzip_static_module --with-http_stub_status_module --with-ipv6
> --error-log-path=/mnt/log/nginx/error.log --without-mail_pop3_module
> --without-mail_imap_module --without-mail_smtp_module
> --http-log-path=/mnt/log/nginx/access.log
> --http-client-body-temp-path=/mnt/log/nginx/http-temp/client_body_temp
> --http-proxy-temp-path=/mnt/log/nginx/http-temp/proxy_temp
> --http-fastcgi-temp-path=/mnt/log/nginx/http-temp/fastcgi_temp
> --http-uwsgi-temp-path=/mnt/log/nginx/http-temp/uwsgi_temp
> --http-scgi-temp-path=/mnt/log/nginx/http-temp/scgi_temp
>
> make и make install прошли.
>
> root at debian:/home/install/nginx-1.7.4# /usr/local/nginx/sbin/nginx -v
> /usr/local/nginx/sbin/nginx: error while loading shared libraries:
> libssl.so.27: cannot open shared object file: No such file or directory
Вы забыли -L /path/to/libs в --with-ld-opt. При этом, судя по
всему, в /home/install/libressl-2.0.5/ssl/.libs библиотеки нет, и
rpath соответственно бесполезен, но nginx нашёл библиотеку в
/usr/local/lib и собрался с ней. Что возвращает нас к проблеме
загрузки динамических библиотек из нестандартного для вашей
операционной системы пути, куда вы поставили LibreSSL.
> Тут:
> nano /etc/ld.so.conf.d/libc.conf
>
> Говориться смотреть библиотеки в /usr/local/lib
>
> ls /usr/local/lib
> libcrypto.a libcrypto.la libcrypto.so libcrypto.so.30
> libcrypto.so.30.0.0 libssl.a libssl.la libssl.so libssl.so.27
> libssl.so.27.0.0 pkgconfig
>
> ldd /usr/local/nginx/sbin/nginx
> linux-vdso.so.1 => (0x00007fffbe3ff000)
> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x00007f755ee41000)
> libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1
> (0x00007f755ec0a000)
> libssl.so.27 => not found
> libcrypto.so.30 => not found
> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f755ea05000)
> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f755e679000)
> /lib64/ld-linux-x86-64.so.2 (0x00007f755f063000)
>
> Если я раньше хоть что-то и понимал, то сейчас я в упор нихрена не понимаю
> что творится...
Вы не запустили ldconfig после редактирования конфигов ld.so.conf,
соответственно изменения не отразились на работе ld.so. Судя по
последнему письму, вы это для себя уже открыли, но не поняли.
> Кто нибудь вообще в принципе пробовал собрать с LibreSSL или объявили
> возможность сборки "в принципе"?
И даже исправляли то, что не собиралось.
> Простите, я не хочу ни кого обижать или оскорблять, но все данным советы
> похожу "а попробуйте так, может заработает" - а точных описаний как сделать
> нет.
Проблема, в первую очередь, в том, что вы, судя по всему,
пытатесь просто делать cut-n-paste того, что вам пишут, не вникая
в суть. Здесь же по умолчанию предполагается, что люди знакомы с
предметной областью и осмысляют написанное. Подобное различие
подходов приводит к множеству глупых ошибок - как из-за
вашей собственной невнимательности, так и из-за того, что описания
порой неполны, а иногда и с опечатками. Дополнительной остоты
проблеме добавляет тот факт, что вы не поделились с
общественностью используемой операционной системой (хотя все и
догадались, что имеется в виду какая-то из вариаций Linux'а).
Что до "точных описаний как сделать", то наиболее популярное
доступно тут:
http://button.dekel.ru/
;)
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru