shinyapp 部署的兩種方法

一藤肢、樣本app

#文件名為app.R
library(shiny)

# Define UI for dataset viewer app ----
ui <- fluidPage(

  # App title ----
  titlePanel("Shiny Text"),

  # Sidebar layout with a input and output definitions ----
  sidebarLayout(

    # Sidebar panel for inputs ----
    sidebarPanel(

      # Input: Selector for choosing dataset ----
      selectInput(inputId = "dataset",
                  label = "Choose a dataset:",
                  choices = c("rock", "pressure", "cars")),

      # Input: Numeric entry for number of obs to view ----
      numericInput(inputId = "obs",
                   label = "Number of observations to view:",
                   value = 10)
    ),

    # Main panel for displaying outputs ----
    mainPanel(

      # Output: Verbatim text for data summary ----
      verbatimTextOutput("summary"),

      # Output: HTML table with requested number of observations ----
      tableOutput("view")

    )
  )
)

# Define server logic to summarize and view selected dataset ----
server <- function(input, output) {

  # Return the requested dataset ----
  datasetInput <- reactive({
    switch(input$dataset,
           "rock" = rock,
           "pressure" = pressure,
           "cars" = cars)
  })

  # Generate a summary of the dataset ----
  output$summary <- renderPrint({
    dataset <- datasetInput()
    summary(dataset)
  })

  # Show the first "n" observations ----
  output$view <- renderTable({
    head(datasetInput(), n = input$obs)
  })

}

# Create Shiny app ----
shinyApp(ui = ui, server = server)
image.png

二省骂、方法

1丑孩、部署在官方的服務(wù)器上

#本地安裝rsconnect 
install.packages('rsconnect')
library(rsconnect)

#想要最新版本可以用以下命令安裝該包
if(!require("devtools"))
  install.packages("devtools")
devtools::install_github("rstudio/rsconnect")

#通過以下網(wǎng)址創(chuàng)建shinyapp.io賬戶
https://www.shinyapps.io/
image.png
image.png
#復(fù)制該代碼到R窗口下運(yùn)行
rsconnect::setAccountInfo(name='genomenetwork',
              token='869F3553609D3A17C74FA157528D58C8',
              secret='<SECRET>')
#將工作目錄設(shè)置到樣本app的文件下
setwd("~/Downloads/shiny-examples-master/001-hello")
#當(dāng)運(yùn)行以下命令成功運(yùn)行程序時(shí)温学,目錄設(shè)置正確
shiny::runApp()
image.png
#停止應(yīng)用仗岖,運(yùn)行以下代碼部署app
library(rsconnect)
deployApp()
#部署完成自動(dòng)彈出網(wǎng)頁(yè)
https://genomenetwork.shinyapps.io/001-hello/

2、部署在自己服務(wù)器上

#購(gòu)買一個(gè)vps虛擬機(jī)
#購(gòu)買域名揽祥,沒有的話,用ip訪問
#連接vps拄丰,官方推薦ubuntu系統(tǒng)俐末,其他系統(tǒng)可能要多折騰
#安裝R和依賴文件
sudo apt-get update
sudo apt-get install r-base
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libxml2-dev
R
#安裝shiny包
#install.packages("shiny")
#手動(dòng)添加鏡像源
install.packages('shiny', repos='https://cran.rstudio.com/')
#如果你的app.R有其他加載的包,盡量都要用R裝上去

#安裝shiny-server
sudo apt-get install gdebi-core
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.9.923-amd64.deb
sudo gdebi shiny-server-1.5.9.923-amd64.deb

訪問 端口3838载矿,如果頁(yè)面出現(xiàn)烹卒,且右側(cè)有圖則安裝完成


image.png
#部署app
#將文件app.R上傳到服務(wù)器
uu@client:~/shinyapp$ pwd
/home/uu/shinyapp
uu@client:~/shinyapp$ tree demo1
demo1
└── app.R

0 directories, 1 file
#修改配置文件,使app.R生效
sudo vim /etc/shiny-server/shiny-server.conf
# Instruct Shiny Server to run applications as the user "shiny"
run_as shiny;


access_log /var/log/shiny-server/access.log default;  # 增加記錄訪問
preserve_logs true;                                   # 禁止自動(dòng)清除日志

# Define a server that listens on port 3838
server {
  listen 80;

  # Define a location at the base URL
  location / {

    # Host the directory of Shiny Apps stored in this directory
    site_dir /srv/shiny-server;

    # Log all Shiny output to files in this directory
    log_dir /var/log/shiny-server;

    # When a user visits the base URL rather than a particular application,
    # an index of the applications available in this directory will be shown.
    directory_index on;
  }
    #指向app.R代碼位置
    location /demo1{                     #/demo1 訪問app.R的網(wǎng)址后綴
        app_dir /home/uu/shinyapp/demo1; #app.R所在文件夾
        log_dir /var/log/shiny-server/demo1;#app.R日志所在文件夾
    }
#重啟服務(wù)器
sudo systemctl restart shiny-server
#應(yīng)用啟動(dòng)失敗牡整,一般是依賴包問題敏沉,好好查看報(bào)錯(cuò)信息
#日志
sudo cat /var/log/shiny-server/demo/
#重啟
sudo systemctl restart shiny-server;
#文件配置
sudo vim /etc/shiny-server/shiny-server.conf

由于Shiny Server為了保證性能炎码,所以非敏感性的錯(cuò)誤日志被設(shè)置了自動(dòng)清除,每當(dāng)你出現(xiàn)了錯(cuò)誤潦闲,要去看日志定位問題的時(shí)候,這個(gè)日志就剛好被自動(dòng)清除了辖众『途矗坑很大!啤它!都開始懷疑人生了。
所以变骡,你在調(diào)試時(shí)需要修改一個(gè)參數(shù)芭逝,保證日志不會(huì)被自動(dòng)清除。

sudo vi /etc/shiny-server/shiny-server.conf
run_as shiny;
access_log /var/log/shiny-server/access.log default;  # 增加記錄訪問
preserve_logs true;                                   # 禁止自動(dòng)清除日志
# Define a server that listens on port 3838
server {
  listen 3838;
# 省略
}

參考

#部署在官方服務(wù)器上
https://docs.rstudio.com/shinyapps.io/
#部署在自己服務(wù)器上
https://www.rstudio.com/products/shiny/download-server/
http://blog.fens.me/r-shiny-aws/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末台妆,一起剝皮案震驚了整個(gè)濱河市胖翰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搂漠,老刑警劉巖某弦,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件而克,死亡現(xiàn)場(chǎng)離奇詭異员萍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)碎绎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門筋帖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人日麸,你說我怎么就攤上這事逮光。” “怎么了嗡综?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵杜漠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我戴陡,道長(zhǎng),這世上最難降的妖魔是什么恤批? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任裹赴,我火速辦了婚禮,結(jié)果婚禮上延都,老公的妹妹穿的比我還像新娘。我一直安慰自己晰房,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布与境。 她就那樣靜靜地躺著猖吴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪共屈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天拗引,我揣著相機(jī)與錄音刑然,去河邊找鬼暇务。 笑死,一個(gè)胖子當(dāng)著我的面吹牛垦细,可吹牛的內(nèi)容都是我干的括改。 我是一名探鬼主播嘱能,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼惹骂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了对粪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤纱扭,失蹤者是張志新(化名)和其女友劉穎儡遮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忆首,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年糙及,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筛欢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡柱搜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出聪蘸,到底是詐尸還是另有隱情表制,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布娜遵,位于F島的核電站,受9級(jí)特大地震影響设拟,放射性物質(zhì)發(fā)生泄漏久脯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一跑慕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧相赁,春花似錦、人聲如沸钮科。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赃承。三九已至,卻和暖如春瞧剖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抓于。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工捉撮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巾遭。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓闯估,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親睬愤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 尋找一種易于理解的一致性算法(擴(kuò)展版) 摘要 Raft 是一種為了管理復(fù)制日志的一致性算法。它提供了和 Paxos...
    枝葉君閱讀 2,651評(píng)論 0 15
  • 尋找一種易于理解的一致性算法(擴(kuò)展版) 摘要 Raft 是一種為了管理復(fù)制日志的一致性算法光督。它提供了和 Paxos...
    yflau閱讀 997評(píng)論 0 1
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)塔粒,會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,333評(píng)論 0 9
  • 專業(yè)考題類型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 9,006評(píng)論 0 13
  • 今天看到一位朋友寫的mysql筆記總結(jié)船老,覺得寫的很詳細(xì)很用心圃酵,這里轉(zhuǎn)載一下,供大家參考下郭赐,也希望大家能關(guān)注他原文地...
    信仰與初衷閱讀 4,736評(píng)論 0 30