2013-05-04 116 views
4

我是RServe(和FastRWeb)的新手。我安装了RServe 1.7.0,因为我想使用它的内置网络服务器。由于我已经在这台机器上运行apache,我想在自定义端口上运行RServe/FastRWeb。如何配置FastRWeb以使用RServer内置的web服务器

我做了cd /usr/local/lib/R/site-library/FastRWeb;sudo ./install.sh,它创建了/ var/FastRWeb /目录树。

我没有看到任何提及端口的配置文件。默认/var/FastRWeb/code/rserve.conf看起来是这样的:

socket /var/FastRWeb/socket 
sockmod 0666 
source /var/FastRWeb/code/rserve.R 
control enable 

我猜,这意味着它使用Unix套接字,默认情况下?所以我认为我的问题是,我必须将该文件放入(并从中删除)究竟是,比如让它监听TCP端口8888?还有什么我需要做的? (我想能够从其他机器连接,而不仅仅是本地主机。)

可能相关,是我看过/var/FastRWeb/web/index.html,它包含的JavaScript将连接到/cgi-bin/R/这个路径是特定于使用Apache的时候,还是会好的,当使用RServe时?

回答

7

有一个在Rserve 1.7.0 release announcement中设置端口的说明。因此,在rserve.conf的顶部,我添加了这一行:http.port 8888然后我使用start脚本(以root身份)启动它。

这引起了我一半像现在http://127.0.0.1:8888/作品,但给了我一个页面,上面写着:

Error in try(.http.request("/", NULL, NULL, c(48, 6f, 73, 74, 3a, 20, : 
    could not find function ".http.request" 

解决方案的第二部分是把它添加到/ var/FastRWeb /代码/ rserve顶部.R:

library(FastRWeb) 
.http.request <- FastRWeb:::.http.request 

然后开始做事运行/var/FastRWeb/code/start去。没有默认处理程序,因此您可以使用http://127.0.0.1:8888/info进行测试。或者更有趣的例子是http://127.0.0.1:8888/example1.png(查看图表)或http://127.0.0.1:8888/example2(查看html和图表的组合)

注意:我没有删除或编辑任何其他配置以使其工作。这意味着我们也有unix socket监听。如果不需要,请从Rserve.conf文件中移除这两行。

如果您希望它监听所有IP地址,而不仅仅是本地主机,然后将remote enable添加到您的Rserve.conf文件中。 注意:在将服务器打开到全球之前,请确保您了解安全后果。

所以,这两个变化后,我/var/FastRWeb/code/Rserve.conf文件看起来像:

http.port 8888 
remote enable 
source /var/FastRWeb/code/rserve.R 
control enable 
+0

我知道这是前一阵子,但是非常感谢。您是否使用FastRWeb获得成功?我在Ruby中推出了自己的等价物,并且正在考虑以这种方式更好地处理并发连接。 – Brandon 2014-03-11 15:23:01

+0

@Brandon不,这一切都让人觉得太实验了,我从来没有回到过去。 (我刚刚检查过,并且已经发布了几个Rserve的更新版本,所以现在可能会更好。) – 2014-03-11 23:16:06

+0

感谢您输入Darren。我今晚已经玩了一下,看起来像预期的那样。所有它必须击败我的哈克解决方案:) – Brandon 2014-03-12 03:42:27

1

您是否看到Jay Emerson's write-up from a while back关于如何使用RServe作为Web驱动分析的后端?据我所知,仍然使用Apache进行重定向,而不是像你在这里推测的那样使用明确的端口。

杰伊的设置非常令人印象深刻。他使用Rserve提供了通过网格包提供的混合表格/图表页面,所有页面都非常漂亮,速度非常快,基于庞大的数据集(来自联合国机构或世界银行等)。但我现在无法找到该报告的链接...

+1

感谢德克,我发现该网页,但正如你所说,它是与Apache使用。 FastRWeb页面说:“FastRWeb可以运行在任何支持CGI或PHP的网络服务器上,从版本1.1开始,它也可以直接与Rserve 1.7和更高版本的内置网络服务器一起使用。”这听起来像我不应该需要Apache? – 2013-05-06 00:34:37

相关问题