3

我已经在 CentOS6 上成功构建并安装了 OpenCPU 和 RStudio Server。一切都按预期工作,我的本地 R 包确实获得了成功的 GET/POST 响应。

然而,有几件事似乎不起作用:

  • 我想不出一个干净的方法来启动/停止/刷新 OpenCPU。我目前正在使用apachectl restart,但我什至不确定是否会按预期重新加载 R 包。我尝试了 Jeroen 的 bash 脚本,/usr/lib/opencpu/scripts但它们似乎需要进行相当多的调整才能在 CentOS 上运行。
  • (可能与上述有关)我正在使用load()and readRDS()in /etc/opencpu/Renvironfile (也尝试过 in /etc/opencpu/Rprofile)将持久数据集加载到全局环境中——但这似乎不起作用。我没有收到任何错误日志,但这些对象在后续请求中不可用。
  • 在 Ubuntu OpenCPU 上似乎配置为在opencpu用户下运行。在 CentOS6 上,它似乎root在安装后运行。我想修改它,但不确定如何修改。

只是想知道是否有人在 CentOS6 上成功配置了 OpenCPU。

非常感谢,--梅尔。

4

1 回答 1

2

一些答案

  • 运行sudo apachectl restart将重新启动。目前 rpm 中没有用于 opencpu 的特殊 init 或 systemd 脚本,但基本上该脚本在 ubuntu 上所做的只是重新启动 apache 并将一些消息打印到终端。

  • REnviron文件仅用于环境变量。您需要RProfile用于自定义代码。另请参阅帮助。也许它没有在正确的环境中加载。试试:load(file, envir = globalenv(), verbose = TRUE)

  • 请注意,存储内容的推荐方法是将其放入 R 包中,作为延迟加载数据或sysdata.rda(请参阅编写 R 扩展)。然后,您可以在启动时加载或附加包,或者更好的是:从包含您的应用程序或 R 函数的包中正式导入数据集。

  • Afaik,centos 以用户身份运行 httpd 请求apache?是什么让您认为 opencpu 以 root 身份运行?这当然不是本意。在 CentOS 上,您有时需要使用 SELinux httpd 标志来让您的应用程序工作,另请参阅rpm 自述文件。

rpm 包比 debian 包更新且测试较少,因此如果您有问题或建议,请在 github 上打开一个问题。

于 2014-11-03T02:27:17.163 回答