2013-11-23 4 views
0

Mediawiki 추가 기능 인 Scribunto를 설치하려면 PCRE 버전 8.1 이상이 필요합니다. 그러나 CENTOS 업데이트에서 최대 버전은 7.8입니다.CENTOS/Redhat 6에서 PCRE를 업데이트하는 방법

소스 코드 버전 8.33을 성공적으로 컴파일했으며 "pcretest -C"명령을 사용하면 이미 버전 8.33입니다. 그러나 phpinfo()에는 여전히 이전 PCRE 7.8이 있습니다.

PCRE에서 PHP를 최신 버전으로 가리키는 방법은 무엇입니까?

+1

자신의 libpcre 버전은 어디서 설치 되었습니까? 'ld.so.conf' 나'LD_LIBRARY_PATH'를 통해 우선 순위를 정하거나,'LD_PRELOAD ='를 이용하여 특별히 사용자 정의 pcre 빌드로 Apache/PHP를 실행하십시오. – mario

+0

/usr에 설치되었습니다. 나는이 분야에 초보자 다. 나는 ld.so.conf를 알고 있지만 LD_LIBRARY_PATH와 LD_PRELOAD를 모른다. 나는 php가 pcre를 얻는 곳을 찾는 방법을 모른다. 단계별 명령 줄 단계는 매우 감사하겠습니다. –

답변

1

시어.

나는 나중에 느낍니다. 여기

<IfModule fcgid_module> 
    SetEnv LD_PRELOAD /usr/local/lib/libpcre.so.1 

    ScriptAlias /fcgi-bin/ /var/www/fcgi-bin/ 
    AddType application/x-httpd-fastphp .php 
    Action application/x-httpd-fastphp /fcgi-bin/php-cgi 

    <Directory /var/www/fcgi-bin/> 
    # Allows /usr/bin/php-cgi to be symlinked here 
    Options +FollowSymLinks 
    </Directory> 
</IfModule> 

는 것들의 목록은 다음과 같습니다

나는 마지막 날 /etc/httpd/conf.d/php.conf이 같은 연과 (CentOS는 6에서 mod_fcgid 패키지) PCRE from source를 구축하고 FastCGI를 사용하던 근무 것을 당신을 말할 수있다 포기하고 FastCGI를 사용하기 전에 기본 "모듈 형"PHP 설치 (php5_module)로 시도했습니다. LD_PRELOAD=/usr/local/lib/libpcre.so.1

  • PassEnv LD_PRELOAD/etc/sysconfig/httpd에 정의. 그러나

  • LoadFile /usr/local/lib/libpcre.so.1
  • SetEnv LD_PRELOAD /usr/local/lib/libpcre.so.1
  • , 나는 일반적으로 VirtualHost 섹션 안에 이러한 지침을 넣고 있었어요, 그래서 나는 위해 문제라고 가능성을 배제하지 않습니다. 다시 말하면,이 지시어가 앞에 올 필요가 있고 PHP 모듈이로드 된 일 가능성이 있습니다. 나는 그렇게하지 않았습니다. 내가 실험 할 때 /etc/httpd/conf.d/php.confvhosts.conf을 사용하고 있었고 일반적으로 톱 레벨 설정 파일을 sully 시키려고하지 않았습니다.

    결국 나는 인내심을 잃었고 FCGI 경로를 시도해 보았습니다. PHP를 로딩 가능한 모듈로 사용하고 있다면 위의 옵션 중에 LoadFilehttpd.conf으로 지정하고 PHP DSO를로드하기 전에으로로드 할 수 있습니다.

    +0

    사실이 질문을했을 때 존재하지 않았던 Centos 6를 7로 업그레이드하여이 문제를 해결했습니다. 하지만 대답 해줘서 고마워. –

    관련 문제