4

RServe (および FastRWeb) は初めてです。組み込みの Web サーバーを使用したいので、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

これは、デフォルトで UNIX ソケットを使用していることを意味していると思いますか? したがって、私の質問は、たとえば、TCP ポート 8888 でリッスンするために、そのファイルに正確に何を追加 (および削除) する必要があるかということだと思います。他に何かしなければならないことはありますか?(ローカルホストだけでなく、他のマシンからも接続できるようにしたい。)

/var/FastRWeb/web/index.html を調べたところ、接続する JavaScript が含まれている可能性があります。/cgi-bin/R/そのパスは Apache を使用する場合に固有のものですか、それともそのままで問題ありませんか? RServe を使用する場合

4

2 に答える 2

7

Rserve 1.7.0のリリースアナウンスにポートの設定の説明があります。したがって、rserve.conf の先頭に次の行を追加しました。http.port 8888 次に、startスクリプトを (ルートとして) 使用してスクリプトを開始しました。

これにより、現在は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/code/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 ソケットもリッスンしているということです。それが必要ない場合は、Rserve.conf ファイルからこれらの 2 行を削除してください。

localhost だけでなく、すべての IP アドレスでリッスンする場合はremote enable、Rserve.conf ファイルに追加します。注:サーバーを公開する前に、セキュリティ上の影響を理解していることを確認してください。

したがって、これら 2 つの変更の後、私の/var/FastRWeb/code/Rserve.confファイルは次のようになります。

http.port 8888
remote enable
source /var/FastRWeb/code/rserve.R
control enable
于 2013-05-06T09:54:48.577 に答える