我有一个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以从网上使用它?感谢。
答案 0 :(得分:0)
问题可能是“./praat”。尝试使用可执行文件的完整路径或将相当于chdir()的php执行到相应的目录
答案 1 :(得分:0)
经过不同的测试,这是我的结论: 我解决了权限问题,所以我的简单C二进制文件工作,但不幸的是没有。 我看到了apache日志文件,错误是: 抛出'MelderError'实例后终止调用 中止
所以我会打开另一个合适的问题: Error executing praat from PHP: terminate called after throwing an instance of 'MelderError' Aborted
感谢大家。