我没有使用 opencpu 作为服务器的经验,所以我试图在文档中找到这个问题的答案,但没有找到这个问题的任何答案。就许可和身份验证而言,这对我来说似乎很基本,所以我想这是在某处记录的,我只是没有找到它....我的问题是关于运行对 OpenCPU 的请求时的用户和权限服务器。我编写了一个 R 包,我想使用 OpenCPU 服务器托管它。到目前为止,我成功地安装了 OpenCPU 服务器,没有任何问题,它适用于我的 R 包中的大多数功能。然而,一个函数用于Sys.getenv('USERNAME')
确定运行代码的用户。但是当客户端请求触发 R 代码时,我不知道如何找出用户。
最小示例:假设我的 R 包中包含一个名为“MyRPkg”的函数“myFun”,例如:
MyRPkg/R/myFun.R
:
myFun(v){
return(Sys.getenv('USERNAME'))
}
当我安装包(在“根”R 库中)并运行我的 OpenCPU 服务器时,我可以访问包并通过 POST 请求调用此函数,例如:
SERVERNAME/ocpu/library/MyRPkg/R/myFun/json
并得到一个空字符串作为答案。
[""]
我如何弄清楚服务器端发生了什么,即哪个用户“运行”了 R 代码,是否可以配置它?我最初的想法是用户应该是“data-www”,这是我系统上的默认 Apache 设置。不知道用户设置在哪一层,Apache、rApache 或 opencpu,但我猜它应该可以在 OpenCPU 级别进行配置?
服务器运行的系统或多或少是一个 linux Ubuntu 服务器。