【问题标题】:How can I interact with Rserve through PHP on a LAMP system?如何在 LAMP 系统上通过 PHP 与 Rserve 交互?
【发布时间】:2013-12-18 16:04:55
【问题描述】:

我正在尝试在 LAMP 系统上执行与 Rserve 交互的 PHP 文件。 PHP 文件位于服务器上的 public_html 目录中。 Rserve 已安装并运行在 R (/usr/lib64/R/library/Rserve). 内 Rserve 的默认目录中 是否有 PHP 文件需要位于特定文件夹才能正确连接到 Rserve?当 Rserve 和 PHP 文件在同一台服务器上时,我需要使用远程连接吗?

PHP 文件返回此错误:No path specified.Invalid response from server.Connect FAILED

PHP-Rserve 测试文件示例:

<?php
require_once 'simple.php';
$s = Rserve_connect();
if ($s == FALSE) {
     echo "Connect FAILED";
} else {
     print_r (Rserve_eval($s, "list(str=R.version.string,foo=1:10,bar=1:5/2,logic=c(TRUE,FALSE,NA))"));
 echo "<p/>";
     print_r (Rserve_eval($s, "{x=rnorm(10); y=x+rnorm(10)/2; lm(y~x)}"));
 Rserve_close($s);
}
ob_end_flush();
?>

Telnet 结果:

#telnet 127.0.0.1 6311
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Rsrv0103QAP1

处理结果:

# ps ax|grep Rserve
14028 ?      Ss  0:00  /usr/lib64/R/bin/Rserve
15264 pts/3  S+  0:00  grep Rserve

【问题讨论】:

  • 这不清楚。 PHP 可以工作吗?如果没有,怎么没有? 'telnet 结果' 和 'process result' 向我们展示了什么? RServe 不关心您的 PHP 文件在哪里,但您的 Web 服务器会。所以......呃,什么不工作?
  • 我已经编辑了这个问题。 PHP 脚本不起作用。错误如上所示。 “telnet 结果”和“处理结果”显示 Rserve 正在“localhost”(127.0.0.1)上运行和访问。
  • 假设 simple.php 是 Rserve 提供的文件,您是否正确编辑了它,因为它并不是真的要像那样使用。您是否在某处关注一些文档?
  • simple.php 是 Rserve 提供的文件。我没有更改文件。我在文件底部使用了 simple.php 的测试部分。 /*========== user code -- example and test -- comment out the above and uncomment this for testing

标签: php r lamp rserve


【解决方案1】:

我认为您需要传递主机和端口参数才能连接。例子

Rserve_connect( localhost, 6311)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多