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

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

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

"기호를 읽을 수 없습니다"라는 메시지가 나타납니다. make이는 아마도 pcre 라이브러리가 ELF 64비트이고 설치가 ELF 32비트일 것으로 예상하기 때문일 것입니다.

**/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

관련 정보