您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么把shiny網頁工具部署在云服務器”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么把shiny網頁工具部署在云服務器”吧!
我們課題組有一份油菜的核心種質資源,前幾年經重測序之后已經發表了。但是課題組后面很多的項目都基于這份核心種質資源,實驗室成員常常需要檢索分析某些基因的特定SNP,所以我在自學了一段時間的Shiny之后就嘗試著搭建了一個Shiny app并利用Shiny-server部署在課題組的服務器上,但是由于我開發的這個Shiny app本來就打開比較慢,加上很多時候服務器負荷運行,導致Shiny app打開速度就更慢了,有的時候甚至加載時間過長直接打不開。恰巧我緊跟生信技能樹推文更新,了解到可以搞個云服務器來部署Shiny應用。
一開始@思考問題的熊建議我利用RStudio的Shinyapp.io
部署Shiny應用,看名字就知道這是RStudio專門開發的用于部署Shiny應用的一個服務器,有免費版也有企業版的,對于我來說免費版的就足夠了,具體使用可以參考官方手冊,我這里不講,因為我的應用無法部署上去,我使用到的一個包genetics顯示來源有問題,不兼容。具體就是這個包我是從CRAN安裝的,但是利用rsconnect檢測的時候顯示genetics的來源是BioConductor,這就很尷尬了,Google發現很多用戶都遇到個類似的問題,有的解決辦法是從GitHub上安裝繞過了這個問題,genetics好像不能通過GitHub安裝,所以沒辦法只能棄之,自己購買一個云服務器進行部署。
服務器產商很多,國外的AWS我也嘗試注冊過,它提供為期一年的免費試用,但是注冊激活的時候需要填信用卡信息,我沒有,只能放棄,轉向國內的云服務器。國內的服務器主要有阿里云aliyun、騰訊云Tencent Cloud以及華為云HUAWEI CLOUD等,生信技能樹也專門寫了推文介紹,有需要的朋友關注生信技能樹看推文哈!
我最后選了阿里云,先進入阿里云,注冊登錄,然后學生認證。
我直接購買了一年的學生套餐,瞄了一眼,發現還能領個20元的優惠券:
最后94元就買一年的最低配(1核2G,1M帶框,40G云盤)的服務器,我主要是用來部署服務器,所以容易足夠了。地域選擇的話我選了華東(杭州),我不記得在哪看了篇博客,里面測試發現不同區域之間差別不大,所以我也沒糾結,就選了所在城市地域。系統我就選了Ubuntu16.04 64位(好像只有這一個Ubuntu版本可選)
購買之后進入控制臺,里面有云服務器的詳細信息,對我最有用的話就是有個公網IP了,這樣我的Shiny app全世界都能訪問了!
有了云服務器就能各種折騰了,我已經折騰過好幾臺服務器了,所以比較順利就安裝配置好了部署環境,新手的話參考生信技能樹的帖子:如果有一個新的服務器你會做什么?,基本能順利地走通。
我這里就只講一下安裝Shiny-server,默認你已經安裝了R語言以及Shiny包:
首先進入官網下載,里面有詳細的安裝方法:
sudo apt-get install gdebi-core
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.14.948-amd64.deb
sudo gdebi shiny-server-1.5.14.948-amd64.deb
安裝好之后,會自動創建shiny用戶。
需要注意的是,你購買的云服務器你進去之后實際上是root用戶登錄的,我一開始部署的時候由于安裝的包都是root用戶安裝的,所以就修改了配置問題,用root用戶運行Shiny-server,開始的時候運行正常,后面突然莫名其妙就運行不了,所以我最后不得不將所有R包都刪了,然后以shiny用戶登錄。
shiny用戶登錄好之后,我先進行了一下設置,主要是R語言以及shiny-server設置:
# vi .Rprofile
Sys.setenv(LANG="en_US.UTF-8")
options=(repo = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
# vi .Renviron
R_LIBS=/home/shiny/R_Library
然后shiny-server配置文件如下:
# Instruct Shiny Server to run applications as the user "shiny"
preserve_logs true;
sanitize_errors false;
run_as shiny;
# Define a server that listens on port 3838
server {
listen 3838;
# 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;
}
}
然后就是安裝各種需要用到的R包了,這里不講,網上教程太多了,ubuntu學徒安裝R包失敗可以肯定的是遇到各種依賴缺失的問題,這個時候就Google或者百度了,缺啥補啥!
需要注意的是,由于我購買的是最低配的服務器,所以有些需要編譯的R包有時候會由于內存不足,編譯安裝失敗,這個時候我的建議是多安裝幾次,總會成功的!
所有準備環境準備好了之后,就可以將Shiny app文件上傳到/srv/shiny-server目錄里面,可能需要修改目錄所屬權限:
sudo chown -R shiny:shiny shiny-server
剩下就差最后最后一步了,云服務器多了個安全組,需要進入控制臺進行設置:(左邊側欄)網絡與安全-安全組,進入之后手動添加開通3838端口就行了。此時瀏覽器打開 http://公網ip:3838/app名 就可以看到自己部署的應用了!我這次部署了兩個應用 http://121.41.229.126:3838/bnasnpdb 和 http://121.41.229.126:3838/gwas ,目前運行良好,打開速度也還行!
到此,相信大家對“怎么把shiny網頁工具部署在云服務器”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。