0

C++ プログラムである PRAAT を実行するために exec() を呼び出す PHP スクリプトがありますが、ブラウザーから呼び出すと機能しません。代わりに、コマンドライン「php5 ./mypage.php」を使用すると機能します。

これは私のPHPページです:

Praat は、音声を分析するプログラムです。このプログラムは、スクリプト FeaturesExtraction.praat と wav 感情.wav を入力として受け取り、出力をディレクトリ "output" (すべての権限を持っています) に書き込みます。

apache ログを見ると、これがエラーです。「MelderError」のインスタンスをスローした後に終了が呼び出され、中止されました

どうすればこの問題を解決できますか? :S

どうもありがとう。

4

2 に答える 2

1

アップデート

これはバージョン5.4.15で最終的に修正されました。問題は、Praatがユーザーのの下にある設定ディレクトリに書き込もうとしたことでしたhome。もちろん、これは、通常ホームディレクトリwww-dataを持たないユーザーなどの場合に問題が発生します。

変更ログから:

5.4.15(2015年8月1日)

  • WebサーバーからPraatを簡単に呼び出すことができるいくつかのコマンドラインオプションが導入されました。

オプションは、「WebサーバーからのPraatの呼び出し」という見出しの下のマニュアルに記載されています。関連するオプションは--no-pref-filesです。


元の回答

これとまったく同じ問題が、しばらく前にメーリングリストで発生しました。Apacheとして実行しているときのMelderErrorです。

その電子メールの送信者は、この問題がバージョン5.3.16に存在するが、5.2.17には存在しないことを報告しました。これはバグの可能性があると認識されましたが、次のバージョンの変更ログはこれに具体的に対処していないようです。

どのバージョンを使用していますか?これがより新しいバージョンで修正されているかどうかを確認してください。

于 2013-03-01T13:01:56.227 に答える