Здравствуйте.Возникла необходимость установки апача 2.2 и опенссл 1.0.1 из исходников.
1) устанавливаю опенссл 1.0.1х (все равно с какой буквой вместо "х", при компиляции апача происходит одна и та же ошибка)
./config --shared --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make
make test
make install2) устанавливаю апач 2.2 (пробовал версии 2.2.27, 2.2.31, 2.2.21 везде после make проблема)
LDFLAGS=-L/usr/local/openssl/lib CPPFLAGS=-I/usr/local/openssl/include ./configure --enable-so --enable-rewrite --with-ssl=/usr/local/openssl/ --prefix=/usr/local/apache22 --with-included-apr --enable-ssl=shared --enable-ssl-staticlib-deps
make
.
.
./usr/local/src/httpd-2.2.21/srclib/apr/libtool --silent --mode=link gcc -g -O2 -L/usr/local/lib -L/usr/local/ssl/lib -o ab ab.lo -lm /usr/local/src/httpd-2.2.21/srclib/pcre/libpcre.la /usr/local/src/httpd-2.2.21/srclib/apr-util/libaprutil-1.la -lexpat /usr/local/src/httpd-2.2.21/srclib/apr/libapr-1.la -lcrypt -lpthread -lssl -lcrypto
.libs/ab.o: In function `ssl_print_info':
/usr/local/src/httpd-2.2.21/support/ab.c:546: undefined reference to `sk_num'
/usr/local/src/httpd-2.2.21/support/ab.c:549: undefined reference to `sk_value'
.libs/ab.o: In function `test':
/usr/local/src/httpd-2.2.21/support/ab.c:1725: undefined reference to `SSL_state'
.libs/ab.o: In function `ssl_state_cb':
/usr/local/src/httpd-2.2.21/support/ab.c:434: undefined reference to `SSL_state'
.libs/ab.o: In function `main':
/usr/local/src/httpd-2.2.21/support/ab.c:2012: undefined reference to `SSLv23_client_method'
/usr/local/src/httpd-2.2.21/support/ab.c:2215: undefined reference to `SSLv23_client_method'
/usr/local/src/httpd-2.2.21/support/ab.c:2221: undefined reference to `SSLv3_client_method'
/usr/local/src/httpd-2.2.21/support/ab.c:2267: undefined reference to `SSL_load_error_strings'
/usr/local/src/httpd-2.2.21/support/ab.c:2268: undefined reference to `SSL_library_init'
*** Error code 1Stop in /usr/local/src/httpd-2.2.21/support.
*** Error code 1Stop in /usr/local/src/httpd-2.2.21/support.
*** Error code 1Stop in /usr/local/src/httpd-2.2.21.
В чем проблема?
помогите.FreeBSD 9.0-RELEASE-p3
Заранее спасибо.
сделай grep -R SSLv23_client_method /usr/local/openssl по всем undefined reference, найдешь либы, подсунешь их в последнюю команду сборки -lxxx
> сделай grep -R SSLv23_client_method /usr/local/openssl по всем undefined reference, найдешь
> либы, подсунешь их в последнюю команду сборки -lxxxспасибо за ответ, сделал как ты сказал
grep -R SSLv23_client_method /usr/local/openssl
куча манов
Binary file /usr/local/openssl/bin/openssl matches
Binary file /usr/local/openssl/lib/libssl.so.1.0.0 matches
Binary file /usr/local/openssl/lib/libssl.a matches
Binary file /usr/local/openssl/lib/libssl.so matches
/usr/local/openssl/include/openssl/ssl.h:const SSL_METHOD *SSLv23_client_method(void); /* Negotiate highest availablegrep -R SSL_load_error_strings /usr/local/openssl
куча манов
Binary file /usr/local/openssl/bin/openssl matches
Binary file /usr/local/openssl/lib/libssl.so.1.0.0 matches
Binary file /usr/local/openssl/lib/libssl.a matches
Binary file /usr/local/openssl/lib/libssl.so matches
/usr/local/openssl/include/openssl/ssl.h:void SSL_load_error_strings(void);grep -R SSL_library_init /usr/local/openssl
куча манов
Binary file /usr/local/openssl/bin/openssl matches
Binary file /usr/local/openssl/lib/libssl.so.1.0.0 matches
Binary file /usr/local/openssl/lib/libssl.a matches
Binary file /usr/local/openssl/lib/libssl.so matches
/usr/local/openssl/include/openssl/ssl.h:# define OpenSSL_add_ssl_algorithms() SSL_library_init()
/usr/local/openssl/include/openssl/ssl.h:# define SSLeay_add_ssl_algorithms() SSL_library_init()
/usr/local/openssl/include/openssl/ssl.h:int SSL_library_init(void);grep -R SSL_state /usr/local/openssl
куча манов
Binary file /usr/local/openssl/bin/openssl matches
Binary file /usr/local/openssl/lib/libssl.so.1.0.0 matches
Binary file /usr/local/openssl/lib/libssl.a matches
Binary file /usr/local/openssl/lib/libssl.so matches
/usr/local/openssl/include/openssl/ssl.h:# define SSL_get_state(a) SSL_state(a)
/usr/local/openssl/include/openssl/ssl.h:# define SSL_is_init_finished(a) (SSL_state(a) == SSL_ST_OK)
/usr/local/openssl/include/openssl/ssl.h:# define SSL_in_init(a) (SSL_state(a)&SSL_ST_INIT)
/usr/local/openssl/include/openssl/ssl.h:# define SSL_in_before(a) (SSL_state(a)&SSL_ST_BEFORE)
/usr/local/openssl/include/openssl/ssl.h:# define SSL_in_connect_init(a) (SSL_state(a)&SSL_ST_CONNECT)
/usr/local/openssl/include/openssl/ssl.h:# define SSL_in_accept_init(a) (SSL_state(a)&SSL_ST_ACCEPT)
/usr/local/openssl/include/openssl/ssl.h:const char *SSL_state_string(const SSL *s);
/usr/local/openssl/include/openssl/ssl.h:const char *SSL_state_string_long(const SSL *s);
/usr/local/openssl/include/openssl/ssl.h:int SSL_state(const SSL *ssl);"найдешь либы, подсунешь их в последнюю команду сборки -lxxx "
извини, можешь поподробнее
./configure --with-ssl=/usr/local/openssl/попробуй указать
./configure \
--enable-ssl \
--with-ssl=/usr/local \
.......
> ./configure --with-ssl=/usr/local/openssl/
> попробуй указать
> ./configure \
> --enable-ssl \
> --with-ssl=/usr/local \
> .......ох что я только не пробовал :)
LDFLAGS=-L/usr/local/openssl/lib CPPFLAGS=-I/usr/local/openssl/include ./configure --enable-so --enable-rewrite --with-ssl=/usr/local --prefix=/usr/local/apache22 --with-included-apr --enable-ssl
make
...
/usr/local/src/httpd-2.2.31/srclib/apr/libtool --silent --mode=link gcc -g -O2 -L/usr/local/lib -L/usr/local/openssl/lib -o ab ab.lo -lm /usr/local/src/httpd-2.2.31/srclib/pcre/libpcre.la /usr/local/src/httpd-2.2.31/srclib/apr-util/libaprutil-1.la -lexpat /usr/local/src/httpd-2.2.31/srclib/apr/libapr-1.la -lcrypt -lpthread -lssl -lcrypto
.libs/ab.o: In function `ssl_print_info':
/usr/local/src/httpd-2.2.31/support/ab.c:551: undefined reference to `sk_num'
/usr/local/src/httpd-2.2.31/support/ab.c:554: undefined reference to `sk_value'
.libs/ab.o: In function `test':
/usr/local/src/httpd-2.2.31/support/ab.c:1730: undefined reference to `SSL_state'
.libs/ab.o: In function `ssl_state_cb':
/usr/local/src/httpd-2.2.31/support/ab.c:437: undefined reference to `SSL_state'
.libs/ab.o: In function `main':
/usr/local/src/httpd-2.2.31/support/ab.c:2027: undefined reference to `SSLv23_client_method'
/usr/local/src/httpd-2.2.31/support/ab.c:2230: undefined reference to `SSLv23_client_method'
/usr/local/src/httpd-2.2.31/support/ab.c:2288: undefined reference to `SSL_load_error_strings'
/usr/local/src/httpd-2.2.31/support/ab.c:2289: undefined reference to `SSL_library_init'
/usr/local/src/httpd-2.2.31/support/ab.c:2236: undefined reference to `SSLv3_client_method'
*** Error code 1Stop in /usr/local/src/httpd-2.2.31/support.
*** Error code 1Stop in /usr/local/src/httpd-2.2.31/support.
*** Error code 1Stop in /usr/local/src/httpd-2.2.31.
OpenSSL 1.0.1u ставьте в отдельное место, самое главное чтобы оно было собрано с --sharedпример:
./config --prefix=/opt/openssl --openssldir=/opt/openssl/openssl --sharedhttpd 2.2.31 собирать с остальными вашими опциями и добавить: --enable-ssl=shared --with-ssl=/opt/openssl --enable-ssl-staticlib-deps
> OpenSSL 1.0.1u ставьте в отдельное место, самое главное чтобы оно было собрано
> с --shared
> пример:
> ./config --prefix=/opt/openssl --openssldir=/opt/openssl/openssl --shared
> httpd 2.2.31 собирать с остальными вашими опциями и добавить: --enable-ssl=shared --with-ssl=/opt/openssl
> --enable-ssl-staticlib-depsсделал именно так как вы сказали, поставил в /opt хотя в случаи /usr/local/openssl он и так находился в отдельной директории.
апач ставил так
LDFLAGS=-L/opt/openssl/lib CPPFLAGS=-I/opt/openssl/include ./configure --enable-so --enable-rewrite --enable-ssl=shared --with-ssl=/opt/openssl --enable-ssl-staticlib-deps --prefix=/usr/local/apache22 --with-included-aprпосле make получил ту же ошибку что указывал выше
гугл потелебомкай на ошибку - там есть инфо по этой теме