소스에서 Apache를 다시 빌드하려고 하는데 이전에 발생하지 않은 문제가 발생했습니다.
나는 과거에 여러 번 소스에서 Apache 버전 2.4.57을 빌드했으며 make
이 단계에서는 문제가 없었습니다.
나는 아파치를 잡았습니다:
wget https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz
구성하세요:
./configure --prefix=/path/to/server --with-ssl=/opt/openssl/bin
그리고 다음을 빌드해 보세요:
make
하지만 다음 오류가 발생합니다.
/usr/share/apr-1.0/build/libtool --silent --mode=link x86_64-linux-gnu-gcc -pthread \
-o ab ab.lo /usr/lib/x86_64-linux-gnu/libaprutil-1.la /usr/lib/x86_64-linux-gnu/libapr-1.la -lm -lssl -lcrypto
/usr/bin/ld: ab.o: in function `ssl_print_cert_info':
ab.c:(.text+0xa94): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.o: in function `ssl_print_info':
ab.c:(.text+0xc6c): undefined reference to `SSL_get1_peer_certificate'
/usr/bin/ld: ab.o: in function `ssl_proceed_handshake':
ab.c:(.text+0xe0c): undefined reference to `SSL_get1_peer_certificate'
/usr/bin/ld: ab.c:(.text+0xe2b): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0xefc): undefined reference to `EVP_PKEY_get_id'
/usr/bin/ld: ab.c:(.text+0xf2d): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0xf62): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0xff5): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0x102f): undefined reference to `EVP_PKEY_get_bits'
/usr/bin/ld: ab.c:(.text+0x103d): undefined reference to `EVP_PKEY_get_id'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:73: ab] Error 1
make[2]: Leaving directory '/srv/apache/httpd-2.4.57/support'
make[1]: *** [/srv/apache/httpd-2.4.57/build/rules.mk:75: all-recursive] Error 1
make[1]: Leaving directory '/srv/apache/httpd-2.4.57/support'
make: *** [/srv/apache/httpd-2.4.57/build/rules.mk:75: all-recursive] Error 1
해결책을 시도해 보세요
최근에 많이 플레이했는데 postfix
버전 중 하나에 문제가 발생했습니다 openssl
. 이 문제를 해결하려고 시도하는 동안 시스템 라이브러리를 변경한 것 같으며 openssl
이제 Apache가 빌드되지 않습니다.
문제를 해결하려고 시도하는 동안 Openssl
내 openssl 버전이 Apache 버전 2.4.57에 비해 너무 현대적(3.2.1)이라는 것이 문제일 수 있다고 의심했습니다. 따라서 이 게시물에 따르면 다음과 같습니다.
https://askubuntu.com/questions/1126893/how-to-install-openssl-1-1-1-and-libssl-package
1.1.1 버전으로 다운그레이드했습니다. 이 버전으로 빌드하도록 Apache를 구성했습니다. 불행히도 행운이 없습니다.
온라인으로 검색해도 이 특정 문제에 대한 해결책을 찾을 수 없습니다. 또한 OpenSSL 아파치에 필요한 버전에 대한 참조를 찾는 데 어려움을 겪고 있습니다. 또는 이러한 라이브러리를 사용하지 않고 빌드하도록 아파치를 구성할 수 있는지도 확인하는 데 어려움을 겪고 있습니다. 어쩌면 ./configure
깃발일까요? SSL 지원 없이 구축해도 괜찮습니다.
누구든지 httpd의 필수 버전에 대한 특정 솔루션이나 가능한 힌트를 통해 이 상황을 밝힐 수 있다면 감사하겠습니다.
고쳐 쓰다
나는 의견의 조언을 따르고 위에 언급된 openssl 버전 3.0.2에 대한 stackoverflow 게시물에 나열된 Openssl 지침을 반복했습니다. 을 실행할 때 make test
일부 테스트가 실패합니다.
Test Summary Report
-------------------
25-test_verify.t (Wstat: 512 Tests: 160 Failed: 2)
Failed tests: 157-158
Non-zero exit status: 2
80-test_cms.t (Wstat: 1792 Tests: 12 Failed: 7)
Failed tests: 2-6, 9, 12
Non-zero exit status: 7
80-test_ssl_new.t (Wstat: 256 Tests: 30 Failed: 1)
Failed test: 12
Non-zero exit status: 1
Files=242, Tests=3284, 433 wallclock secs ( 8.33 usr 0.51 sys + 391.95 cusr 46.46 csys = 447.25 CPU)
Result: FAIL
이러한 테스트 오류에도 불구하고 계속해서 Openssl을 설치했습니다. 아파치를 구성할 때:
./configure --with-ssl=/opt/openssl
오류 없음 - 문제가 해결되었습니다.
이러한 오류가 무엇을 의미하는지 명확하지 않습니다 make test
. 누구든지 이에 대해 알려주시면 감사하겠습니다.
의견과 실제로 확인된 @steeldriver 덕분에 httpd-2.4.57을 openssl-3.0.2와 함께 사용할 수 있다는 것을 알고 있습니다. httpd에 대한 종속성 요구 사항을 찾는 방법이 명확하지 않습니다. 누구든지 나를 다시 올바른 방향으로 안내해 주시면 매우 감사하겠습니다.