【发布时间】:2014-02-26 23:05:01
【问题描述】:
我有一个使用“R CMD BATCH file.r”和“Rscript file.r”从命令行正确执行的 R 程序。如果我尝试通过 PHP 代码执行,我会得到奇怪的结果。这是我的结果:
$lastline = system("R CMD BATCH file.r", $returnval);
**$returnval = 133,R 代码创建一个 Rout 输出文件,R 代码似乎没有完全执行,因为有应该创建的 SQL 记录
$lastline = system("Rscript file.r", $returnval);
**什么都没有返回,浏览器只是无限旋转
我也尝试过使用 exec_shell 和 exec。我得到相同的结果。关于如何通过 PHP 有效执行 R 代码的任何想法?根据我的阅读,“R CMD BATCH”选项可能更有希望,但是,R/RMySQL 所做的工作似乎并未完成。不确定这是问题还是其他原因。但我确实知道 R 程序可以通过命令行很好地执行。
另外,我宁愿不必使用任何 Apache 或 PHP 模块来完成此操作。感谢您的意见。
【问题讨论】:
-
可能是权限问题
-
使用
sudo -u your_apache_user R CMD BATCH file.r来查看PHP 是否正在以所需的权限运行,以便按预期运行您的脚本。 -
@Sammitch,你的建议奏效了。谢谢!