优中优科技官网_北京优中优科技集团有限公司

网站建设

把你的shiny网页工具部署在云服务器

之前我在生信菜鸟团已经(jing)发布的页工:购买入门级服务器免费送Linux直播培训服务 ,提到了可以每个(ge)月花几块钱购置一款《1核2G服务器》标(biao)准(zhun)品,具部既可以练习Linux命令,服务也可(ke)以打搭建一个博客:五分钟搞定你的(de)页工个(ge)人博客,还可以做图床,具(ju)部或者隧道(dao)。服务然后(hou)浙大博士发掘了这个(ge)《1核2G服务器(qi)》的页工另外一个(ge)用途,分享给大家。具部以下是服务投稿缘由我们课题组有一份油菜的核心(xin)种质资源,前几年经(jing)重(zhong)测序之后已(yi)经发表(biao)了。页工但是具(ju)部课题组后面很多的项目都基于这份核心种(zhong)质(zhi)资(zi)源,实验室成员常常需(xu)要检索分析某些(xie)基因的服务特定SNP,所以我在自学了(le)一段时间的(de)页工Shiny之后就尝试着搭建了一个Shiny app并利用Shiny-server部署在课题组(zu)的服务器上(shang),但是具部由于我开(kai)发的这个(ge)Shiny app本来就打开比较慢,加上(shang)很多时候(hou)服务器负荷运行,服务导致Shiny app打开速度就更(geng)慢了(le),有(you)的时候甚至加载时(shi)间(jian)过长直接打不(bu)开。恰巧我紧跟生信技能树推文更新,了解到可以(yi)搞个云服务器来部署Shiny应用。购买服务器一开始@思考问题的熊建议我利用RStudio的(de)Shinyapp.io部署Shiny应用,看名字就知道这(zhe)是RStudio专门开(kai)发的用(yong)于部署Shiny应用的一个服务器,有免费版也有企业(ye)版的,对于我来说免费版的就足够了,具体使用可以参(can)考官方手册,我这(zhe)里不讲,因(yin)为我的应用无法部署上去,我使用到的(de)一个(ge)包genetics显示来源有(you)问题,不兼容。具体就是这个包我是从CRAN安装的,但是利用rsconnect检测的时候显示genetics的来源是BioConductor,这就很尴尬了,Google发现很多用(yong)户都(dou)遇到个类似的问题,有的解决办法是从GitHub上安装绕过了这个问题(ti),genetics好像不能通过GitHub安装,所以没办法只能弃之,自己购买一个云服务器(qi)进(jin)行部署。服务器产商很多,国外的AWS我也尝试注册过,它提供为期一年(nian)的免费试用,但是注册激活的时候需要填信用卡信息,我没有,只能放弃,转向国内的云服务(wu)器。国内的服务(wu)器主要有阿里云aliyun、腾讯云Tencent Cloud以及(ji)华为云HUAWEI CLOUD等,生信技能树也(ye)专门写了推文介绍,有需要的朋友关注生信技能树看推文哈!我最(zui)后选了阿里(li)云,先进入阿里云,注册登录,然后(hou)学生认证。我直接购买了一年的学生(sheng)套餐,瞄了一眼,发现还能领个20元的优惠券:最后94元就买一年的最(zui)低配(1核2G,1M带框,40G云盘)的服务器(qi),我主要是(shi)用来部署服务器,所以容易足够了。地域选择的话我选了华东(杭州),我不记得在哪看了篇博客,里(li)面测试发现(xian)不同区域之(zhi)间差别不大,所以我也没纠结,就选了所在城市地域。系统我就选了Ubuntu16.04 64位(好像(xiang)只有这一个Ubuntu版本可选)购买之后进入控制台,里面有云服务器的详细信息,对我最有用的话就是有个公网IP了,这样我的(de)Shiny app全世界都能访问了!配置服务器(qi)有了云服务器就能各种折腾了,我已(yi)经折腾过好几(ji)台服务器了,所以比较顺利(li)就安装配置好(hao)了部署环境,新手的话参考生信技能树的帖子:如果有一个新的服务器你会做什么?,基本能(neng)顺利地走通。我这里(li)就只讲一下安装Shiny-server,默认你已(yi)经安装了R语言以及Shiny包:首先进入官网下载,里面有详细的安装方法:sudo apt-get install gdebi-corewget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.14.948-amd64.debsudo gdebi shiny-server-1.5.14.948-amd64.deb安装好之后,会自动创建shiny用户。需要注意的是,你购买的云服务器你进(jin)去之后实际上是root用户登录的,我一开始部署的时候由于安装的包都是root用户安装(zhuang)的,所以就修改了配置问题(ti),用root用户运行Shiny-server,开(kai)始的时(shi)候运行正常,后面(mian)突然莫名其妙就运行(xing)不了,所以我最后不得不(bu)将所有R包都删了(le),然后以shiny用户登录。shiny用户登录好之后,我先进(jin)行了一下设置,主要是(shi)R语言以及(ji)shiny-server设置:# vi .RprofileSys.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 .RenvironR_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 3838server { 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; }}然后就是安装(zhuang)各种(zhong)需要用到的R包了,这里不讲,网上教程太多(duo)了,ubuntu学徒安装R包失败可以肯定的是遇到各(ge)种依赖缺失的问题,这个(ge)时候(hou)就Google或(huo)者百度了,缺啥补啥!需(xu)要注意的是,由于我购买的(de)是(shi)最低配的服务器,所以有些需要编译的R包有时候会由于内存不足,编译安装失败,这个时候我(wo)的建议是多安装几次(ci),总会成功的(de)!所有准备环境准备好了之后,就(jiu)可以将Shiny app文(wen)件上传到/srv/shiny-server目录里面,可能需要修改目录所属权限:sudo chown -R shiny:shiny shiny-server剩下就差最后最后一步了,云服务(wu)器(qi)多了个安全组,需要进入控制台进行设置:(左边侧栏)网络与安全-安全组(zu),进入之后手动添加(jia)开(kai)通3838端口就行了。此时浏览器打开 http://公网ip:3838/app名 就可以看到自己部署的应用了!我这次部署了两个应用 http://121.41.229.126:3838/bnasnpdb 和(he) http://121.41.229.126:3838/gwas ,目前(qian)运行(xing)良好,打开速度也还行!以上是我这次云服务器部署shiny app的经验,由于一开始没打算记录下来,现在信息大爆炸时代,技术分享实在太多了,但是@jimmy说每个人的故事(shi)都不一样,所(suo)以我就事后回忆记录一下,如果能帮助到其他人就最好了!限于本人能力,里面肯定有(you)很多不足的地方。文末友情推荐要想真正入门生物信息学建议务必购买全套书籍,一点一滴攻克(ke)计算机基础知识,书单在(zai):什么(me),生信入门全套书(shu)籍仅需160 。如果大家没有时间自行慢慢摸索着(zhe)学习,可以(yi)考虑我们生信技能树官方举办的学习班:数据挖掘学(xue)习班第(di)5期(线上直(zhi)播3周,马(ma)拉松式陪伴,带你入门),原价4800的数据挖掘全套课程, 疫情期间半价即可抢购。生信爆款入门-第7期(线上直播4周,马拉松式陪伴,带你入门),原价9600的生信入门全套课程,疫情期间(jian)3.3折即可抢购。如果你课题涉及到转录组,欢迎添加一对一客服:详见:你还在花三五万做一个单细胞转录组吗?