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服务器

从 RStudio 发布到本地 Shiny Server

R Shiny 服务器未呈现正确的 ggplot 字体系列

在 Ubuntu Server 上将 .R 文件转换为实际的 Shiny 应用程序

无法在 WSL Ubuntu 18.04 上安装 R Shiny Server