2012-04-05 18 views
6

wszyscy! FreeobiD szukający pomocy przy integracji PCRE i Apache z mod_php.PCRE jest kompilowany bez obsługi UTF

Co mam:

  • FreeBSD 8.2-RELEASE-P3
  • Apache/2.2.22 (FreeBSD, zbudowany z portów)
  • PHP 5.3.10 z Suhosin-Patch (CLI) (powierzchnia: 06 kwietnia 2012 02:58:27) (nie z portów) wersji
  • PCRE 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 mi mówi, że używa wersję PCRE poniżej:

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 

I wszystko działa poprawnie, gdy próbuję uruchomić mojej aplikacji PHP z linii poleceń, w taki sposób php < somecode.php.

Ale kiedy go wykonać poprzez apache, otrzymuję ten błąd: Compilation failed: this version of PCRE is compiled without UTF support at offset 0

starałem się odbudować apache z portów z --with-pcre=/usr/local/bin, ale jej nie powiodło się z wiadomości, że Apache nie mógł znaleźć skrypt pcre-config.

Co może być nie tak?

+0

Zapraszamy do obejrzenia tej odpowiedzi [](), aby http://stackoverflow.com/a/2107027/198536 bardzo podobne pytanie. – wallyk

+0

@ Wallyk, dzięki! Ale to nie jest mój wariant. Już skompilowałem PCRE z obsługą UTF i Unicode i działa dobrze z php w trybie cli. Mój problem dotyczy modułu apache pcre, jeśli dobrze rozumiem. – RomiC

+1

Czy sprawdziłeś, czy php na apache jest taki sam, jak ten z linii poleceń? Może masz drugą wersję. Sprawdź również, być może są zainstalowane dwie wersje pcre. – arved

Odpowiedz

4

Rozwiązany problem po prostu przebudował apache z systemem pcre zamiast domyślnym. Aby zrobić to samo, zbuduj apache z opcją --with-pcre, która powinna zawierać pełną ścieżkę do pcre-config, w tym samego pcre-config. W moim przypadku jest to --with-pcre=/usr/local/bin/pcre-config.

Dzięki dla wszystkich)

+0

Dzięki za obserwację! – wallyk

Powiązane problemy