2010-02-17 2 views
1

아파치에서 실행중인 PHP에서 ffmpeg를 실행하고있었습니다. 나는 "공유 라이브러리를로드하는 중 오류가 발생했습니다 : libavdevice.so.52 : 공유 객체 파일을 열 수 없습니다 : 해당 파일이나 디렉토리가 없습니다".아파치에서 실행중인 PHP에서 ffmpeg 실행

php 스크립트가 명령 프롬프트에서 실행되었거나 ffpmeg가 명령 프롬프트에서 직접 호출 된 경우 완벽하게 작동합니다.

1 단계 : 파일 "libavdevice.so.52은"다음 명령을 사용하여 서버에 존재하는지 확인

나는 아파치 오류를 해결하기 위해 다음 단계를 따라 갔다.

찾기 'libavdevice.so *.'/ -name

2 단계 : 파일 "libavdevice.so.52는"위의 명령에서 존재하는 디렉토리를 얻을 것이다. 이 예제에서 디렉토리가 "/ usr/local/lib /"라고 가정합니다.

3 단계 : "/etc/ld.so.conf"파일에 디렉토리 이름을 추가해야합니다.

4 단계 : "ldconfig"명령을 실행하십시오.

위와 같은 작업이 어떻게 아파치와 다른 점이 있습니까?

답변

1

당신이 명령 프롬프트 대 PHP 문제가 발생하면 파일 실행 권한을 조사 할 것입니다. www-data (또는 PHP가 실행중인 사람)는 FFMPEG가 PHP에 의해 실행될 때 가정하는 권한입니다.

나는이 정확한 문제를 과거에 경험하지 못했지만, CLI에서 올바르게 실행되기 때문에 당신이보기를 시도하는 것이 좋습니다.

+0

고마워요. Btw, 내가 언급 한 단계로 문제가 해결되었지만 그것이 아파치와 어떻게 다른지에 대해 알고 싶다. Btw, 나는 파일 사용 권한을 확인했고 그것은 모두를위한 것입니다 (777). – foobar

0

나는 확실히 질문을 얻지 못한다. 그것은 나 자신에게 대답하는 것처럼 보인다.

3 단계를 수행 했으므로 아파치에 영향을 줄 수있는 유일한 작업은 /etc/ld.so.conf입니다. 내가 그 파일이 무엇인지 전혀 알지 못한다. 그러나 원격의 경우 그렇지 않다면, 분명히 배경 과정이었을 것이다. findldconfig은 어쨌든 아파치에 영향을 미치지 않습니다.