2012-04-05 8 views
6

jeder! FreeBSD Noobie auf der Suche nach Hilfe bei der Integration von PCRE und Apache mit mod_php.PCRE ist ohne UTF-Unterstützung kompiliert

Was ich habe:

  • FreeBSD 8.2-RELEASE-p3
  • Apache/2.2.22 (FreeBSD, von Häfen gebaut)
  • PHP 5.3.10 mit Suhosin-Patch (cli) (gebaut: 6. April 2012 02.58.27) (nicht von Ports)
  • PCRE Version 8,30 2012-02-04

    Compiled with 
        8-bit support only 
        UTF-8 support 
        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 
    

php -i | grep -i pcre sagt mir, er nutzt Version von PCRE unter:

Configure Command => './configure' '--with-layout=GNU' 
         '--localstatedir=/var' '--with-config-file-scan-dir=/usr/local/etc/php' 
         '--disable-all' '--enable-libxml' '--enable-mysqlnd' 
         '--with-libxml-dir=/usr/local' '--with-pcre-regex=/usr/local/lib' 
         '--with-zlib-dir=/usr' '--program-prefix=' '--with-apxs2=/usr/local/sbin/apxs' 
         '--with-regex=php' '--with-zend-vm=CALL' 
         '--enable-zend-multibyte' '--prefix=/usr/local' 
         '--mandir=/usr/local/man' '--infodir=/usr/local/info/' 
         '--build=i386-portbld-freebsd8.2' 
pcre 
PCRE (Perl Compatible Regular Expressions) Support => enabled 
PCRE Library Version => 8.30 2012-02-04 
pcre.backtrack_limit => 1000000 => 1000000 
pcre.recursion_limit => 100000 => 100000 

Und alles funktioniert gut, wenn ich versuche, meine PHP-Anwendung von der Kommandozeile ausgeführt werden, in einer solchen Art und Weise php < somecode.php.

Aber wenn ich es über Apache ausführen, erhalte ich diesen Fehler: Compilation failed: this version of PCRE is compiled without UTF support at offset 0

Ich habe versucht, Apache von Ports mit --with-pcre=/usr/local/bin wieder aufbauen, aber sein mit folgenden Meldung fehlgeschlagen, die Apache nicht pcre-config-Skript gefunden.

Was könnte falsch sein?

+0

Werfen Sie einen Blick auf [diese Antwort] (http://stackoverflow.com/a/2107027/198536) auf eine ganz ähnliche Frage. – wallyk

+0

@wallyk, danke! Aber es ist nicht meine Variante. Ich habe bereits PCRE mit UTF und Unicode-Unterstützung neu kompiliert und es funktioniert gut mit PHP im CLI-Modus. Mein Problem ist im Apache pcre-Modul, wenn ich richtig verstanden habe. – RomiC

+1

Haben Sie überprüft, dass der PHP auf dem Apache der gleiche ist, wie der auf der Kommandozeile? Vielleicht hast du eine zweite Version. Überprüfen Sie auch, dass möglicherweise zwei Versionen von pcre installiert sind. – arved

Antwort

4

Problem behoben, bei dem Apache mit dem System pcre statt mit dem Standard neu erstellt wurde. Um das gleiche zu tun, baute Ihr Apache mit --with-pcre Option, die den vollständigen Pfad zu pcre-config einschließlich pcre-Config selbst enthalten sollte. In meinem Fall ist es --with-pcre=/usr/local/bin/pcre-config.

Vielen Dank an alle)

+0

Danke für die Weiterverfolgung! – wallyk