我正在开发一个shiny 的应用程序,因为我想使用自动测试和功能文档,我开始在一个包中开发接口(推荐here).
我在RStudio中开发了这个shiny 的应用程序,我有一个server.R
文件,我可以在RStudio中点击Run App按钮,一切正常.我将我的包提交到github存储库,从现在开始,我想使用devtools
和install_github
函数将其安装到我的R shiny server上.
现在我想知道如何在服务器上启动我的应用程序.我天真地想安装这个包,并指向server.R
文件,但不知怎么的,这是行不通的.不确定问题出在哪里.
我的第二次try 是在shiny服务器可以访问的文件夹中创建一个名为app.R
的文件,在这个文件中,我基本上加载了我的包、shiny和其他需要的包,但由于缺少变量,它不知何故会抱怨...
谁能给我一个建议吗?我也很乐意回答任何问题,因为我不知道如何正确地问这个问题.
EDIT Deploying to shiny server
由于Colin D在 comments 中询问如何在shiny 的服务器上部署这些包,我想演示一下我是如何做到这一点的.
首先,我使用下面的命令直接通过命令行as root将我的软件包安装到Shining服务器上.
su - -c "R -e \"devtools::install_github('user/shinypackage')\""
下一步是更改包文件夹的所有者
chown -R shiny:shiny /usr/local/lib/R/site-library/shinypackage/
然后我重新启动shiny 的服务器,因为这有时会在缓存方面出现问题.
systemctl restart shiny-server
以下是我更新shiny 应用程序时的步骤.我通常在一行中以根的形式再次这样做
su - -c "R -e \"devtools::install_github('user/shinypackage')\"" & chown -R shiny:shiny /usr/local/lib/R/site-library/shinypackage/ & systemctl restart shiny-server
我们仍然需要做的一件事是在shiny-server.conf
文件中设置目录.我刚刚添加了包路径+应用程序目录,其中保存了ui.R
和server.R
.
location /shinypackage {
app_dir /usr/local/lib/R/site-library/shinypackage/application;
log_dir /var/log/shiny-server;
}
然后我必须使用systemctl restart shiny-server
重新启动服务器.
这是在Ubuntu服务器上使用的.