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

PHP exec()不执行c++;通过浏览器执行时的程序 我有一个PHP脚本,它调用Excor()来执行C++程序,但是当我从浏览器调用它时,它就不起作用了。 相反,如果我使用命令行“php5./mypage.php”,它可以工作,php,c++,exec,praat,Php,C++,Exec,Praat,这是我的PHP页面: Praat是一个分析语音的程序。 该程序将脚本featuresTraction.praat和wav emotion.wav作为输入,并将输出写入目录“output”(具有所有权限) 我测试了两台Web服务器,Apache和Lighttpd,但没有结果 有人能帮我吗? 我怎样才能解决这个问题? 或者我如何包装praat以从web使用它 谢谢。问题可能是“/praat”。尝试使用可执行文件的完整路径,或者在不同的测试之后对相应的目录执行与chdir()相当的php操作。这是

这是我的PHP页面:


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

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

有人能帮我吗? 我怎样才能解决这个问题? 或者我如何包装praat以从web使用它


谢谢。

问题可能是“/praat”。尝试使用可执行文件的完整路径,或者在不同的测试之后对相应的目录执行与chdir()相当的php操作。这是我的结论: 我解决了权限问题,因此我的简单C二进制文件可以工作,但不幸的是,praat不能。 我看到了apache日志文件,错误是: 在抛出“MelderError”实例后调用terminate 流产

因此,我将提出另一个适当的问题:


谢谢大家。

可能是权限问题。web服务器以其他用户身份运行。。。你有没有得到任何类型的错误输出?没有错误如果我通过Web运行它,我也尝试使用www data user命令行“php5./mypage.php”,它在Lighttpd中工作;相反,在另一台使用apache的服务器中,我遇到了以下错误:在抛出“melderror”实例后调用terminate中止了一些消息:在带有lighttpd的localhost中,我的简单测试二进制代码在C中编写文件也可以通过web工作。在另一台使用Apache的服务器中,此二进制文件不起作用。所以:-praat从不通过网络工作;-我的简单二进制文件仅适用于带有lighttpd服务器的本地主机。不,插入完整路径也不起作用。我尝试了另一个用C编写的简单二进制文件(它简单地编写了一个文件),效果很好。我开始认为只有praat有一些问题。。。但如果这是真的,为什么它使用命令行“php5./mypage.php”工作呢?如何查看可能的错误?如果我想放弃php解决方案,我怎么能从web上使用praat呢?谢谢!编辑:我的简单二进制代码只能在Lighttpd上通过web工作,而不能在Apache服务器上工作。。。可能是一些权限错误?