0

我有一个调用 exec() 来执行 C++ 程序 PRAAT 的 PHP 脚本,但是当我从浏览器调用它时它不起作用。相反,如果我使用命令行“php5 ./mypage.php”它可以工作。

这是我的 PHP 页面:

Praat 是一个分析语音的程序。该程序将脚本 FeaturesExtraction.praat 和 wav Emotion.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


原始答案

前段时间,邮件列表中也出现了同样的问题:MelderError when running as Apache

该电子邮件的发件人报告此问题存在于版本 5.3.16 中,但不存在于 5.2.17 中。这被认为是一个可能的错误,但以下版本的变更日志似乎没有专门解决这个问题。

你用的是什么版本?看看这是否在更新的版本中得到修复。

于 2013-03-01T13:01:56.227 回答
0

我遇到了同样的问题,解决方案是使用 praat 5.1.25。您可以从此网址下载:http: //pkgs.org/ubuntu-10.04/ubuntu-universe-amd64/praat_5.1.25-1_amd64.deb.html

于 2013-06-25T10:18:21.507 回答