RHEL 5에 PCRE 32비트 설치 - Apache 2.4 설치에 대한 종속성 해결

RHEL 5에 PCRE 32비트 설치 - Apache 2.4 설치에 대한 종속성 해결

RHEL 5에 Apache 2.4 32비트 버전을 설치해야 합니다. RHEL5 시스템에서 실행되는 애플리케이션에는 Apache 32비트가 필요하기 때문에(또는 과거 동작 때문에 그렇게 생각합니다) 64비트 Apache를 설치하지 않습니다.

make설치 시 ELF 32비트일 것으로 예상하는데 pcre libs가 ELF 64비트이기 때문에 "기호를 읽을 수 없습니다"라는 메시지가 표시됩니다.

**/usr/local/lib/libpcre.so: could not read symbols: File in wrong format**
collect2: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/opt/myapp/httpd-2.4.7'
make: *** [all-recursive] Error 1

Apache 2.4에 대한 구성은 다음과 같이 실행됩니다.

CFLAGS="-m32"; export CFLAGS
LDFLAGS="-m32"; export LDFLAGS
"./configure" \
"--prefix=/opt/myapp/apache2.4" \
"--with-mpm=worker" \
"--enable-static-support" \
"--enable-ssl=static" \
"--enable-modules=most" \
"--disable-authndbd" \
"--disable-authn-dbm" \
"--disable-dbd" \
"--enable-static-logresolve" \
"--enable-static-rotatelogs" \
"--enable-proxy=static" \
"--enable-proxyconnect=static" \
"--enable-proxy-ftp=static" \
"--enable-proxy-http=static" \
"--enable-rewrite=static" \
"--enable-so=static" \
"--with-ssl=/opt/myapp/apache2.4/openssl" \
"--host=x86_32-unknown-linux-gnu" \
"host_alias=x86_32-unknown-linux-gnu" \
"CFLAGS=-m32" \
"LDFLAGS=-m32" \
"--with-included-apr" \
"--with-pcre=/usr/local" \
"$@"

다음을 사용하여 오류 없이 PCRE를 설치했습니다.

./configure --prefix=/usr/local --enable-pcre32

pcretest를 수행하면 다음과 같은 결과가 나타납니다(8비트 지원으로 컴파일되었습니까?).

$ /usr/local/bin/pcretest -C
PCRE version 8.33 2013-05-28
Compiled with
  8-bit support
  No UTF-8 support
  No Unicode properties support
  No just-in-time compiler support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack

하지만 생성된 라이브러리(32비트 앱을 지원해야 함)를 확인하면 ELF 64비트가 표시됩니다.

$ file libpcre32.so.0.0.1
libpcre32.so.0.0.1: **ELF 64-bit** LSB shared object, AMD x86-64, version 1 (SYSV), not stripped

답변1

귀하의 --enable_pcre32 configure옵션은 자체적으로 32비트 옵션을 참조합니다 pcre(16비트 또는 32비트 버전의 정규 표현식을 처리하도록 활성화할 수 있습니다. 아마도 유니코드 관련일 것입니다).

Apache 구성에 사용한 옵션을 pcre사용해 구축해 보세요 .-m32

관련 정보