php 실행 exec 함수 ffmpeg 명령 이 적용 되 지 않 는 문 제 를 어떻게 해결 합 니까?
1579 단어 PHP
개발 에 서 는 플러그 인 ffmpeg 에서 음성 으로 전환 하 는 기능 을 사용 해 야 합 니 다.php 에서 ffmpeg 기능 을 사용 하려 면 exec()함 수 를 실행 해 야 합 니 다.새로운 환경 을 사용 하 라 는 명령 이 작 동 하지 않 기 때문이다.
이 문제 에 부 딪 히 면 나의 분석 은 다음 과 같다.
위의 두 가지 문 제 를 가지 고 우 리 는 하나하나 분석 하여 해결 했다.
첫째,우선,우 리 는 시스템 이 exec()함수 의 사용 을 금지 하 는 지 확인 합 니 다.
1.1 php.ini 설정 파일 을 보고 보안 모드 를 사용 할 지,exec()함 수 를 사용 하지 않 을 지 확인 합 니 다.
safe_mode =
disable_functions=
위의 설정 을 통 해 보안 모드 와 exec()함 수 를 사용 하지 않 는 지 직관 적 으로 볼 수 있 으 며,있 으 면 닫 습 니 다.
2.해당 폴 더 디 렉 터 리 에 777 권한 이 있 는 지 확인 합 니 다.
ftp 나 명령 행 을 통 해 직접 봅 니 다.
3.phop 사용자 가 명령 을 수행 할 수 있 는 권한 이 있 습 니까?
이것 은 운영 기술 의 지원 이 필요 하 다 는 것 을 나 는 잘 모른다.
사용 방법 은 다음 과 같다.
exec('ffmpeg -i ./uploads/gBQt5rxDwqz03dJk7.amr -ab 32 -ar 11025 ./uploads/gBQt5rxDwqz03dJk7.mp3 2>&1 | grep time',$callback)
var_dump($callback);
이 명령 을 xshell 에서 실행 하면 정확 하고 php 에서 실행 하면 실패 합 니 다.
그래서 운 비 에 게 ffmpeg 명령 전에/sbin/를 추가 하면 됩 니 다.
정 답 은 다음 과 같 습 니 다.
exec('/sbin/ffmpeg -i ./uploads/gBQt5rxDwqz03dJk7.amr -ab 32 -ar 11025 ./uploads/gBQt5rxDwqz03dJk7.mp3 2>&1 | grep time',$callback)
var_dump($callback);
Liux 운영 에 대해 잘 모 르 겠 습 니 다.이것 은 운영 이 저 에 게 알려 준 쓰기 입 니 다.위의 방법 은 php 가 exec()함수 ffmpeg 명령 을 실행 할 때 효력 이 발생 하지 않 는 문 제 를 해결 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.