【发布时间】:2012-12-09 17:01:01
【问题描述】:
我要问一些事情,我知道它已经被问过好几次了。但是因为,过去的所有帖子都很旧,没有一个回答我的问题..我再试一次。 我在 R 语言方面是全新的,而在 php 方面相对较新。 我想要做的是使用 exec() 来自 php 的函数来执行 R 脚本。 这里的大多数人都会开始谈论 rapache、rserve,我不知道还有什么……但由于我不熟悉所有这些技术,我更喜欢只使用 exec。
当我从终端使用 Rscript 运行代码时,我将在此处显示的代码运行良好。 # R 脚本 png("temp.png") 情节(5,5) dev.off()
但是当我尝试使用 Rscript 或 PHP 中的 R CMD BATCH 运行它时,如下所示:
echo exec("Rscript my_rscript.R"); //OR
//echo exec("R CMD BATCH my_rscript.R");
我什么也得不到。
我检查了 exec() 函数是否可用以及它是否有效。一切都很好。 我还读到,我可能必须更改网络服务器的权限...但我不知道如何在 mamp 中执行此操作。
我希望我的问题很清楚,有人可以提供帮助。
谢谢 迪米特里斯
【问题讨论】:
-
这在命令提示符窗口中有效吗?如果不是,要么没有正确安装,要么可执行文件不在系统路径中。
-
@cryptic:当我在命令窗口(Rscript my_rscript.R)中运行 R 脚本时,它可以工作。并在桌面上返回一个 png 图。
-
将文件的权限设置为 755(允许所有人读取/执行)看看是否可以解决问题,如果可以,那就是权限问题。
-
对不起,我对这些东西完全陌生。你的意思是改变R文件的权限?我这样做了:chmod u=rx my_rscript.R 但是当我想对 php 文件做同样的事情时,我得到了这个错误:chmod: "Unable to change file mode on test.php: Operation not allowed"
-
文件有什么作用?如果它正在访问文件和目录,这些文件/目录也需要具有适当的权限。该文件将作为服务器运行,因此脚本访问需要允许服务器访问的所有文件/目录。