2013-05-04 109 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