我正在尝试使用服务器上的Shiny应用程序编写Excel文件。第一步是加载包,我使用readXL作为一个例子,因为(它的单行语法和b)没有异常的依赖(看着你的Java)。
首先,我的问题是在服务器上运行,它在我的Mac上运行,但不在任何外部服务器上运行。我尝试过Centos7,一个运行Ubuntu的EC2和一个运行基于Linux的Amazons Redhat的EC2。问题似乎是允许Shiny服务器访问(稍后会详细介绍)。
以下是一些示例代码。这里的.XLSX在我的工作目录中。 server.r
#library(openxlsx)
library(shiny)
library(readxl)
#library(abbyyR)
function(input, output) {
a <- readxl::read_excel("test.xlsx")
output$testXL <- renderTable(a)
}
ui.r
fluidPage(
titlePanel("Conditional panels"),
column(4, tableOutput("testXL")
)
)
在所有情况下,条件面板加载但不加载数据。如果我在R-Studio GUI中运行此应用程序并使用本地计算机(尝试全部三个)作为服务器启动它,我可以通过指定的IP和端口访问它(即下面可以在xxxx:5050上访问。
>runApp(host="0.0.0.0",port=5050)
然而,将此文件放在服务器文件中(我遵循标准设置 - / srv / shiny-server / AppName下的文件)服务器已断开连接。取出基于readXL的代码(包括加载库)可防止与服务器消息断开连接。
我尝试过openxlsx,XLSX和XLConnect,当包含library(packageName)时都失败了。本地目录已将RWX权限应用于所有用户。
有什么想法吗?
答案 0 :(得分:0)
已解决 - 一些软件包正在写入一个文件夹(不确定为什么),该文件夹对本地用户和R用户有权限,但不对Shiny用户有效(这是通过Http访问应用程序的方式)。 使用'library()'查找软件包的安装文件,并在安装软件包时将其指定为libpath。根据您的设置,您可能还需要sudo chown / chgrp。