私はヘルプを検索し、このスレッドですべてを試しましたが、それでもこれを機能させることはできません。shell_exec()を使用して、PHPスクリプトからsox(Sound eXchange)コマンドラインユーティリティを実行しようとしています。2つのオーディオファイルを連結する必要があります。どちらもPHPスクリプトと同じディレクトリにあります(つまり、apacheにアクセスできます)。
混乱は次のとおりです。
- 一部のsoxコマンドは、shell_exec()を使用して正常に機能します。たとえば、オーディオファイルを再生したり、オーディオファイルに関する情報を取得したりできます。
- 連結コマンドをエコーアウトして(PHPがシェルに送信しているものを正確に把握しているので)、それをコピーしてシェルウィンドウに貼り付けると、完全に実行されます。
- 私のapacheユーザー(_www)は、PHPスクリプトがあるディレクトリとsoxディレクトリに対する完全な権限を持っています。両方のディレクトリで「chown-R_www:_www」と「chmod-R777」を実行しました。
- sox実行可能ファイルとオーディオファイルへのフルパスを使用しています。
したがって、これはシェルで機能します。
"/soxpath/sox /filepath/file1.wav /filepath/file2.wav /filepath/combined.wav"
しかし、これはPHPでは機能しません。
shell_exec('/soxpath/sox /filepath/file1.wav /filepath/file2.wav /filepath/combined.wav');
誰かがこれに光を当てることができますか?私は何が欠けていますか?ありがとう。