2010-08-11 2 views
2

PHP에서 사용자 정의 확장을 쓰고 있고 php.ini 파일에 확장을로드하고 있습니다. 확장은 명령 행 인터페이스를 사용할 때 잘로드되고 실행되지만 웹 서버 (Cherokee with FastCGI)에서는로드되지 않습니다. 질문하기 전에 몇 가지 질문을 피하려면, 필자는 적절한 php.ini 파일을 사용하고 있으며 extension_dir의 값을 올바르게 설정했습니다. 확장을로드 할 전체 경로를 지정하는 경우에도 작동하지 않습니다.PHP가 사용자 정의 확장을로드하지 않습니다.

그래서이 문제를 해결하기 위해 내가 할 수있는 일이 궁금합니다. 외부의 의존성 때문일 수도 있습니다. 왜냐하면 확장 된 라이브러리가 몇 개의 공유 라이브러리에 링크되기 전에 확장이 잘로드 되었기 때문입니다. 그러나, 나는 /var/log/cherokee/cherokee.error에 문제에 대한 어떤 징후도 보이지 않는다. 내가 문제를 어떻게 결정할 수 있는지에 대한 다른 생각은 없습니까?

+0

다른 확장명 중 하나에 대해 .so 파일 중 하나를 이동하거나 이름을 바꾸어보십시오. 그때 오류가 보이십니까? 그렇지 않은 경우 오류 로깅에 문제가 있습니다. 또한, 어떤 PHP 버전을 사용하고 있습니까? 멋진 "FPM"FastCGI 구현을 포함하는 5.3.3으로 업그레이드하는 것이 좋습니다. 공유 라이브러리에 관해서는 그들이 찾은 위치에 있는지 확인 했습니까? 문제의 환경 변수가'LD_LIBRARY_PATH' 또는 뭔가라고 생각합니다 ... – Charles

+0

로그에 확장을로드 할 수 없다는 오류가 없다는 뜻입니까? – Artefacto

+1

오류는 없었지만 error_log가 php.ini에서 설정되지 않았기 때문에 이것이 발생했다는 것을 알았습니다. 이를 syslog로 설정하면 PHP와 체로키가 64 비트 인 반면 32 비트이기 때문에 확장이로드되지 않는 것을 볼 수 있습니다. 나는 이들을 32 비트로 재구성하는 중이다. 도와 주셔서 감사합니다. – okalex

답변

0

필자는 PHP와 Cherokee를 32 비트로 다시 빌드 한 다음 (32 비트로 전환 한 후에 발생하는 버그 수정) 작업을 완료했습니다. 다시 한번 감사드립니다.

관련 문제