PHP exec()在通过浏览器执行时不执行c ++程序

时间:2013-01-11 19:35:22

标签: php c++ exec praat

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

这是我的PHP页面:

<?php exec("./praat ./FeaturesExtraction.praat ./emotion.wav ./output/"); ?>

Praat是一个分析语音的程序。 该程序将脚本FeaturesExtraction.praat和wav emotion.wav作为输入,并将输出写入目录“output”(具有所有权限)。

我测试了两个Web服务器,Apache和Lighttpd,但我没有结果。

有人可以帮帮我吗? 我怎么解决这个问题? 或者我如何包装praat以从网上使用它?

感谢。

2 个答案:

答案 0 :(得分:0)

问题可能是“./praat”。尝试使用可执行文件的完整路径或将相当于chdir()的php执行到相应的目录

答案 1 :(得分:0)

经过不同的测试,这是我的结论: 我解决了权限问题,所以我的简单C二进制文件工作,但不幸的是没有。 我看到了apache日志文件,错误是: 抛出'MelderError'实例后终止调用 中止

所以我会打开另一个合适的问题: Error executing praat from PHP: terminate called after throwing an instance of 'MelderError' Aborted

感谢大家。