Как настроить FastRWeb для использования встроенного веб-сервера RServer

Я новичок в 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

Я предполагаю, что это означает, что по умолчанию используются сокеты unix? Поэтому я думаю, что мой вопрос заключается в том, что точно мне нужно вставить (и удалить из) в этот файл, чтобы, скажем, он прослушивал TCP-порт 8888? И есть ли что-то еще, что мне нужно сделать? (Я хочу иметь возможность подключаться с других компьютеров, а не только с локального хоста.)

Возможно, это связано с тем, что я просмотрел /var/FastRWeb/web/index.html, и он содержит javascript, который будет подключаться к /cgi-bin/R/ Является ли этот путь специфичным для использования Apache, или он будет в порядке, как есть? , при использовании RServe?


person Darren Cook    schedule 04.05.2013    source источник


Ответы (2)


Описание настройки порта содержится в объявлении о выпуске 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"

Вторая половина решения состоит в том, чтобы добавить это в начало /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.

Если вы хотите, чтобы он прослушивал все IP-адреса, а не только локальный хост, добавьте remote enable в файл Rserve.conf. ПРИМЕЧАНИЕ. Убедитесь, что понимаете последствия для безопасности, прежде чем открывать свой сервер для всего мира.

Итак, после этих двух изменений мой файл /var/FastRWeb/code/Rserve.conf выглядит так:

http.port 8888
remote enable
source /var/FastRWeb/code/rserve.R
control enable
person Darren Cook    schedule 06.05.2013
comment
Я знаю, что это было давно, но спасибо за это. Были ли у вас успехи с FastRWeb? Я перекатил свой собственный эквивалент на Ruby и думаю о том, чтобы пойти по этому пути, чтобы лучше обрабатывать одновременные соединения. - person Brandon; 11.03.2014
comment
@ Брэндон Нет, все это казалось слишком экспериментальным, и я так и не вернулся к этому. (Я только что проверил, и было несколько более поздних выпусков Rserve, так что сейчас он может быть лучше.) - person Darren Cook; 12.03.2014
comment
Спасибо за вклад, Даррен. Я немного поиграл с ним сегодня вечером, и, похоже, он работает так, как ожидалось. Все, что нужно, это мое хакерское решение :) - person Brandon; 12.03.2014

Видели ли вы недавнюю запись Джея Эмерсона о том, как использовать RServe в качестве серверной части для веб-анализа? Насколько я помню, для перенаправления все еще используется Apache, а не явный порт, как вы здесь предполагаете.

Установка Джея была очень впечатляющей. Он использовал Rserve для предоставления смешанных страниц таблиц и диаграмм, написанных с помощью пакета сетки, очень гладких и очень быстрых, основанных на огромном наборе данных (от агентства ООН, Всемирного банка или чего-то еще). Но я не могу найти ссылку на этот отчет прямо сейчас...

person Dirk Eddelbuettel    schedule 04.05.2013
comment
Спасибо, Дирк, я нашел эту страницу, но, как вы сказали, она предназначена для использования с Apache. На странице FastRWeb написано: FastRWeb можно запустить на любом веб-сервере, поддерживающем CGI или PHP. Начиная с версии 1.1 его также можно использовать напрямую со встроенным веб-сервером в Rserve 1.7 и выше. Мне кажется, что Apache не нужен? - person Darren Cook; 06.05.2013