【发布时间】: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