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

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

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

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

    非常感谢,--梅尔。

    最佳答案

    一些答案

  • 运行 sudo apachectl restart 将重新启动。目前,rpm 中没有包含用于 opencpu 的特殊 init 或 systemd 脚本,但基本上所有脚本在 ubuntu 上所做的都是重新启动 apache 并将一些消息打印到终端。
  • REnviron 文件仅用于环境变量。您需要将 RProfile 用于自定义代码。另见 help 。也许它没有在正确的环境中加载。尝试: load(file, envir = globalenv(), verbose = TRUE)
  • 请注意,推荐的存储方式是将其放入 R 包中,作为延迟加载数据或 sysdata.rda(请参阅 writing R extensions )。然后,您可以在启动时加载或附加包,或者更好的是:从包含您的应用程序或 R 函数的包中正式导入数据集。
  • Afaik,centos 以用户 apache 的身份运行 httpd 请求?是什么让您认为 opencpu 以 root 身份运行?这当然不是本意。在 CentOS 上,您有时需要使用 SELinux httpd 标志来让您的应用程序工作,另请参阅 rpm readme

  • rpm 包比 debian 包更新一些,测试较少,所以如果你有问题或建议,请在 github 上打开一个问题。

    关于r - 如何在 CentOS6 上启动/停止/刷新 OpenCPU?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26706178/

    10-12 23:49