RStudio 服务器 Shiny 上的 R Shiny dev 应用程序启动时崩溃
Posted
技术标签:
【中文标题】RStudio 服务器 Shiny 上的 R Shiny dev 应用程序启动时崩溃【英文标题】:R Shiny dev on RStudio server Shiny crashes when app launch 【发布时间】:2015-01-20 05:56:12 【问题描述】:我是 Shiny 的新手,但对 R 并不陌生。因为工作,我现在在 RStudio 服务器中进行 R 开发。它在 Google Compute Engine 上运行,如果这有什么不同的话。 RStudio 服务器运行良好,但 Shiny 出现问题。
安装shiny后,我运行了示例命令:
runExample("01_hello")
起初,这带来了 Hello Shiny!应用程序,但一切都是灰色的。我重新启动了 RStudio,清理了工作区,然后再次运行了命令。现在弹出一个窗口,但它立即消失。我尝试重新启动 RStudio 服务器,并在不同的浏览器中运行,但行为仍在继续。
我尝试快速单击“在浏览器中打开”按钮,这会在我的浏览器中显示一个灰色的选项卡,就像我重新启动之前一样。
有什么建议吗?谢谢。
编辑:
当我启动示例时,RStudio 控制台会给出:
Listening on http://127.0.0.1:4096
然后就坐在那里,直到我按 esc。
IE 控制台没有任何错误(虽然我也不确定我是否正确使用它——不是网络人,抱歉)。
Chrome 控制台确实报错:
'webkitRequestAnimationFrame' 是特定于供应商的。请使用 而是使用标准的“requestAnimationFrame”。
其中有一个指向 VM320:6635 的链接,内容如下:
函数 _b(b,c)var d=b;var e=Gni(function()var a=wj();d.Df(a));return $wnd.webkitRequestAnimationFrame(e,c)
【问题讨论】:
浏览器的 javascript 控制台中是否有任何有意义的输出? 好主意@KevinUshey。编辑了原始问题。谢谢! 【参考方案1】:在我的 VPS 上安装 RStudio Server 和 Shiny Server 后我遇到了同样的问题,然后尝试配置 Apache 代理,以便我可以使用 www.example.com/rstudio 访问 IDE 而不是默认的 www.example .com:8787.
一开始我做错了,和你有同样的问题,但是在这里我找到了正确的解决方案:https://support.rstudio.com/hc/en-us/articles/200552326-Running-with-a-Proxy
直接原因是缺少 websocket 代理配置:
ProxyPassMatch ^/rstudio/p/([0-9]+)/(websocket|.*/websocket)/$ ws://localhost:8787/p/$1/$2/
【讨论】:
【参考方案2】:要测试问题是在 RStudio 服务器还是在其他地方,在 R 中运行这个单一文件应用程序(复制粘贴到 R 终端):
library(shiny)
server <- function(input, output)
output$distPlot <- renderPlot(
hist(rnorm(input$obs), col = 'darkgray', border = 'white')
)
ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput("obs", "Number of observations:", min = 10, max = 500, value = 100)
),
mainPanel(plotOutput("distPlot"))
)
))
shinyApp(ui = ui, server = server)
我找到了 google 小组讨论 Rstudio server problem,所以可能是某种兼容性问题。
【讨论】:
谢谢@Mikael。我运行代码并:Listening on http://127.0.0.1:5584 /usr/bin/xdg-open: 1: eval: www-browser: not found /usr/bin/xdg-open: 1: eval: links2: not found /usr/bin/xdg-open: 1: eval: elinks: not found /usr/bin/xdg-open: 1: eval: links: not found /usr/bin/xdg-open: 1: eval: lynx: not found /usr/bin/xdg-open: 1: eval: w3m: not found xdg-open: no method available for opening 'http://127.0.0.1:5584'
我转到端口 5584 上的 IP 地址,但网页不可用。我需要先做点别的吗?谢谢你的链接。我正在从那里编写问题解决程序。
这篇文章很有趣。我遇到了类似的问题;应用程序启动但未完全运行ui.R
已按定义创建,但与server.R
没有任何联系,即应用程序仅用作界面,没有其他任何功能。【参考方案3】:
我已经弄清楚了我的问题,主要是。启动 Shiny 应用程序后,窗口仍然关闭,但现在我可以导航到 Shiny 应用程序。这足以让我认为这是固定的。
我必须做两件事。首先,我必须使用 GCE 的命令行打开 Shiny 正在监听的端口,这是这里的第二个答案,使用命令行:How to open a specific port such as 9090 in Google Compute Engine
然后,我必须使用以下命令启动 Shiny 应用程序:
runExample("01_hello", host="0.0.0.0", port=9999)
这也适用于runApp
命令。 9999 是您使用 GCE 打开的端口号,host=0.0.0.0
似乎告诉 Shiny 监听外部连接(来自 in-R ?runApp
帮助文档)。你需要把 0.0.0.0 放进去,而不是你机器的 IP 或类似的东西。
即使在我启动示例时窗口仍然关闭,我仍然可以使用端口号导航到实例的外部 IP 并使用 Shiny 应用程序。
感谢两位的帮助。如果您认为还有什么应该说的,请随时发表评论。
【讨论】:
以上是关于RStudio 服务器 Shiny 上的 R Shiny dev 应用程序启动时崩溃的主要内容,如果未能解决你的问题,请参考以下文章
R/Shiny App 将绘图写入 RStudio 中的绘图视图而不是 Shiny UI
SHINY-SERVER R(sparkR)语言web解决方案 架设shiny服务器