我已经在CentOS6上成功构建并安装了OpenCPU和RStudio Server。一切都按预期工作,我的本地R包得到了成功的GET / POST响应。
但有些事情似乎无法发挥作用:
apachectl restart
,但我甚至不确定是否按预期重新加载R软件包。我在/usr/lib/opencpu/scripts
尝试了Jeroen的bash脚本,但他们似乎需要进行相当多的调整才能在CentOS上工作。load()
文件中使用readRDS()
和/etc/opencpu/Renviron
(也在/etc/opencpu/Rprofile
中尝试过)将持久数据集加载到全局环境中 - 但这似乎不起作用。我没有收到任何错误日志,但后续请求中的对象不可用。opencpu
用户下运行。在CentOS6上,它似乎在安装后在root
下运行。我想修改它,但不确定如何。只是想知道是否有人在CentOS6上配置OpenCPU成功。
非常感谢, - 梅尔。
答案 0 :(得分:2)
一些答案
运行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上打开一个问题。