【问题标题】:How to execute R program from PHP code?如何从 PHP 代码执行 R 程序?
【发布时间】: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,你的建议奏效了。谢谢!

标签: php r


【解决方案1】:

我建议使用 Rserve 来运行 R 代码。 Rserve 是在后台运行的 TCP/IP 服务器。它有一个模块 (rserve-php),但您可以重新创建该功能。

您还可以将套接字与 R 内部的 make.socket() 函数一起使用。

【讨论】:

    猜你喜欢
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    相关资源
    最近更新 更多