我有一个PHP脚本调用exec()来执行C++程序,但是当我从浏览器调用它不起作用。 相反,如果我使用命令行“php5 ./mypage.php”它的作品。PHP exec()不执行通过浏览器执行C++程序
这是我的PHP页面:
<?php exec("./praat ./FeaturesExtraction.praat ./emotion.wav ./output/"); ?>
普瑞特是分析语音程序。 该程序将输入脚本FeaturesExtraction.praat和wav emotion.wav作为输入,并将输出写入目录“output”(具有所有权限)中。
我测试过两个Web服务器Apache和Lighttpd,但是我没有结果。
有人可以帮助我吗? 我该如何解决这个问题? 或者我怎么能包装praat使用它从网络?
谢谢。
可能是一个权限问题。 Web服务器作为一个不同的用户运行...你有没有得到任何类型的错误输出? – crush
如果我通过Web运行它,没有错误,我也尝试使用www-data用户的命令行“php5 ./mypage.php”,它在Lighttpd中工作;而不是在另一台服务器与Apache我有这个错误: 终止抛出'MelderError'的实例后调用 中止 – antonioc
某些消息: 在localhost与lighttpd我的简单测试二进制文件在C编写的文件也可以通过网络。 在使用Apache的另一台服务器中,此二进制文件不起作用。 所以: - praat从来没有通过网络工作; - 我的简单二进制文件只能在localhost和lighttpd服务器上运行。 – antonioc