php 실행 exec 함수 ffmpeg 명령 이 적용 되 지 않 는 문 제 를 어떻게 해결 합 니까?

1579 단어 PHP
원본 링크:http://www.shuchengxian.com/article/637.html
개발 에 서 는 플러그 인 ffmpeg 에서 음성 으로 전환 하 는 기능 을 사용 해 야 합 니 다.php 에서 ffmpeg 기능 을 사용 하려 면 exec()함 수 를 실행 해 야 합 니 다.새로운 환경 을 사용 하 라 는 명령 이 작 동 하지 않 기 때문이다.
이 문제 에 부 딪 히 면 나의 분석 은 다음 과 같다.
  • 1.phop 에서 이 함수 의 사용 을 비활성화 하 였 습 니까?
  • 2.Liux 환경 에서 디 렉 터 리 에 권한 이 있 습 니까?
  • 3.phop 사용자 가 명령 을 수행 할 수 있 는 권한 이 있 습 니까?

  •  
    위의 두 가지 문 제 를 가지 고 우 리 는 하나하나 분석 하여 해결 했다.
    첫째,우선,우 리 는 시스템 이 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 명령 을 실행 할 때 효력 이 발생 하지 않 는 문 제 를 해결 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기