PCRE 32bit auf RHEL 5 installieren - Abhängigkeit für Apache 2.4-Installation auflösen

PCRE 32bit auf RHEL 5 installieren - Abhängigkeit für Apache 2.4-Installation auflösen

Ich muss die 32-Bit-Version von Apache 2.4 auf RHEL 5 installieren. Ich installiere keinen 64-Bit-Apache, da die auf der RHEL5-Maschine ausgeführte Anwendung 32-Bit-Apache benötigt (oder das denke ich zumindest aufgrund des bisherigen Verhaltens).

Ich erhalte die Meldung „Symbole konnten nicht gelesen werden“, makewas wahrscheinlich daran liegt, dass die pcre-Bibliotheken ELF 64bit sind, obwohl die Installation ELF 32bit erwartet.

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

Die Konfiguration für Apache 2.4 wird wie folgt ausgeführt:

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" \
"$@"

Ich habe PCRE ohne Fehler installiert mit:

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

Wenn ich pcretest ausführe, erscheint Folgendes (Kompiliert mit 8-Bit-Unterstützung?):

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

Aber wenn ich die erstellten Bibliotheken überprüfe (die 32-Bit-Apps unterstützen sollen), erhalte ich ELF 64-Bit.

$ 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

Antwort1

Ihre --enable_pcre32 configureOption bezieht sich auf die 32-Bit-Option pcreselbst (kann aktiviert werden, um 16-Bit- oder 32-Bit-Versionen von regulären Ausdrücken zu verarbeiten – vermutlich für Unicode-Sachen?)

Versuchen Sie, pcremit den -m32Optionen zu erstellen, die Sie in Ihrer Apache-Konfiguration verwendet haben.

verwandte Informationen