2013-04-11 104 views
1

我现在正面临以下问题。请帮助我。PHP exec()不能在AppServ上工作

我有两个文件在同一目录:test.php的test.r

test.php的

<?php 
    exec("Rscript test.r"); 
?> 

test.r

d=c(1:10); 
write.csv(d, file="test.csv", fileEncoding="utf-8"); 

q(); 

虽然我访问test.php via chrome,它不给出test.csv

虽然它工作正常上 CMDRscript test.r,它并没有在执行test.php的工作。

有什么建议吗?

感谢

+2

您是否已在PHP服务器中启用执行选项,并且/或者您是否有写权限? – Lemurr 2013-04-11 08:47:13

+0

您也可以尝试http://rapache.net – daroczig 2013-04-11 08:49:16

+0

@PabloLemurr:我启用了所有的权限,但它仍然不起作用:( – lucasKoTW 2013-04-11 09:35:17

回答

0

有几件事情要检查:

  • 文件的权限。将它们暂时设置为0777以查看它是否正在工作
  • 也许exec函数被阻止。检查php.ini(或phpinfo())为disabled_functions
  • 第三个选项 - 是你真的总是需要考虑的 - 你的脚本中的错误。

快速调试!

+0

其他命令似乎没问题!我的脚本中是否有任何错误? – lucasKoTW 2013-04-11 09:38:39

0

PHP/IIS将需要读取/执行您尝试使用您的exec()函数执行的命令的权限。

通过PHP documentation for exec() function文章。

希望它会解决你的问题。

+0

我启用了所有权限,而其他命令不是执行R,而是执行正常工作(例如''output = exec(“ls -al”); echo $ output;') – lucasKoTW 2013-04-11 09:37:13