我是RServe(和FastRWeb)的新手.我安装了RServe 1.7.0,因为我想使用它的内置网络服务器.由于我已经在这台机器上运行了apache,我想在自定义端口上运行RServe/FastRWeb.
我做了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
Run Code Online (Sandbox Code Playgroud)
我猜这意味着它默认使用unix套接字?所以我认为我的问题是我究竟需要将该文件放入(并从中移除),比如让它在TCP端口8888上监听?还有什么我需要做的吗?(我希望能够从其他机器连接,而不仅仅是localhost.)
可能相关的是,我看过/var/FastRWeb/web/index.html并且它包含将要连接的javascript是/cgi-bin/R/特定于使用Apache时的路径,还是它会好起来的,原样,什么时候使用RServe?
有关在Rserve 1.7.0发布公告中设置端口的说明.因此,在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"
Run Code Online (Sandbox Code Playgroud)
解决方案的后半部分是将它添加到/var/FastRWeb/code/rserve.R的顶部:
library(FastRWeb)
.http.request <- FastRWeb:::.http.request
Run Code Online (Sandbox Code Playgroud)
然后开始运行/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套接字监听.如果不需要,请从Rserve.conf文件中删除这两行.
如果您希望它侦听所有IP地址,而不仅仅是localhost,那么请添加remote enable到您的Rserve.conf文件中.注意:确保在向全世界打开服务器之前了解安全性后果.
所以,在这两个更改后,我的/var/FastRWeb/code/Rserve.conf文件看起来像:
http.port 8888
remote enable
source /var/FastRWeb/code/rserve.R
control enable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1796 次 |
| 最近记录: |