(数据科学学习手札66)在ubuntu服务器上部署shiny
一、简介
shiny是R中专门用于开发轻量级web应用的框架,在本地写一个shiny应用并调用非常方便,但如果你希望你的shiny应用能够以远程的方式提供给更多人来使用,就需要将写好的shiny应用部署到服务器上,主要有两种方式,第一种是将shiny应用发布在shinyapps上,第二种是将你的shiny应用部署到自己租用的服务器上,前者比较方便但遇到一些R包环境或中文显示等问题时几乎是无解的,而后者虽然麻烦,但更为自由,且从0开始自己动手的过程又何尝不是一种极大的乐趣呢,本文就将针对在ubuntu 16.04服务器上部署shiny server的流程进行详细的说明;
二、环境配置
2.1 服务器配置说明
我使用的服务器是阿里云ECS,ubuntu 16.04,2核8G内存,40G系统盘,如果条件允许的话,建议内存不要选择过小,否则在编译安装一些R包如raster时会内存不足(当然你也可以通过swap的方式来增加虚拟内存,但速度是非常慢的),用于连接服务器的工具为putty,通过putty登入服务器:
2.2 安装最新版R
首先我们需要安装最新版的R(写作此文时最新的稳定版本为3.6.1),查看R官网对于ubuntu安装最新版R的介绍:
按照上述步骤,首先用vim打开对应的sources.list文件:
sudo vim /etc/apt/sources.list
按i进入编辑模式,结合我们系统版本,把前面R官网说明页面中的deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35添加进文件中,按esc后,再按shift+:,输入wq完成写入并退出过程:
接着执行下列命令来安装最新版的R,遇到y/n全部选择y:
sudo apt-get update sudo apt-get install r-base
这时查看R版本:
这时可以看到我们已经成功安装了最新版本的R。
2.3 安装Rstudio与Rstudio Server
接下来我们来安装Rstudio以及Rstudio Server,用于远程编写及管理服务器上的R程序,在官网对应的下载页面找到对应我们系统版本的geb格式安装包下载链接:
Rstudio:
Rstudio Server:
其实可以在服务器中输入wget 下载链接 来下载对应的文件,但是无奈这样下速度太慢,于是我在本地电脑用了梯子之后以很快的速度下载了Rstudio的geb文件,然后用pscp上传到我们的服务器上的指定目录下:
除此之外还需要安装用以打开geb格式文件的相关程序:
sudo apt-get install gdebi
接下来执行下列命令安装Rstudio:
sudo gdebi rstudio-1.2.1335-amd64.deb
同样的方式,我们用pscp上传Rstudio Server的安装包到刚才的目录下执行下列语句:
sudo gdebi rstudio-server-1.2.1335-amd64.deb
在完成上述命令后,我们可以通过访问http://你的服务器公网IP:8787来使用Rstudio Server服务:
这里输入的账户和密码与服务器登录账户与密码一致,这里不得不吐槽一下Rstudio Server的傻逼设定,这里登入的账户和密码不能已获取超级用户权限,没关系,我们新建一个没有超级用户权限的用户:
sudo adduser 用户名
这样我们就可以用这个无超级用户权限的账号登入Rstudio Server:
可以看到熟悉的界面,就是个在线版的Rstudio,可以通过它来方便地修改服务器上的R代码。
2.4 安装shiny和shiny server
接下来到了最重要的地方,我们来安装shiny和shiny server,首先我们在服务器上的R环境中安装shiny包:
安装成功:
接下来安装shiny server,同样的在本地从官网下载对应的geb安装包,然后用pscp上传到指定目录下:
执行下列命令来安装shiny server:
sudo gdebi shiny-server-1.5.9.923-amd64.deb
安装完成后访问 http://服务器公网IP:3838,这是shiny server的默认导引页,若能显示正常则证明shiny server安装成功:
这时可以发现右侧下方的应用没有正常显示,但这里并没有明确显示具体的报错信息,为了在shiny应用出错时能显示具体的错误信息,我们需要修改shiny server的配置文件,执行下列命令打开shiny server的配置文件:
vim /etc/shiny-server/shiny-server.conf
如图所示位置添加上两行语句用于设置shiny应用出错时显示具体错误信息,保存退出,重新访问刚才的页面:
可以看出这时显示的报错信息提示我们缺失rmarkdown包,在R环境中安装rmarkdown后再次访问此页面:
这时可以看到对应的应用都已正常显示,而这两个应用所在的路径在shiny server的配置文件中有说明:
打开对应路径可以看到hello和rmd两个文件夹,每个文件夹代表一个应用,其内部拥有标准的shiny应用的ui.R和server.R,有时也会有global.R来辅助程序运行:
同样的,我们可以修改配置文件中的默认应用路径到我们自己的应用位置,而在管理shiny server运行上,主要用到下列命令:
#查看状态 sudo systemctl status shiny-server #开启 sudo systemctl start shiny-server #停止 sudo systemctl stop shiny-server #重启 sudo systemctl restart shiny-server
而直接访问应用就是在刚才的引导页url后面添加路径信息,如我们直接来访问hello应用,http://服务器公网IP:3838/sample-apps/hello/ :
至此,我们就完成了在ubuntu上配置部署shiny应用的全部工作,当你想要部署新的应用时,只需要将应用对应文件夹放入应用默认目录下再按照格式访问即可。
以上就是本文的全部内容,如有笔误或不清楚之处望指出!
相关文章
- 网站服务器架构设计
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
- OpenSUSE 服务器系统部署
- Redis开发运维实践上线部署规划之服务器部署位置
- 使用 cacti 监控 windows 服务器硬盘的 I/O 状况
- Centos6.7搭建ISCSI存储服务器
- Vue.js 前端项目在常见 Web 服务器上的部署配置
- c++简单实现http协议服务器和客户端
- MVC项目实践,在三层架构下实现SportsStore-08,部署到IIS服务器
- Mysql集群-----(附录2) Mysql 主从复制,从服务器无法连接问题
- Linux下配置Tomcat服务器
- 部署Java Web项目到云服务器的步骤全解析
- 《构建高可用Linux服务器 第3版》—— 3.5 汇总Linux/UNIX下的bash快捷键
- 把文件服务器挂在本地作为网络盘
- Linux服务器CPU使用率较低但负载较高
- 使用nssm在windows服务器上部署nodejs
- 服务器的windows server 2012 r2 自带的.NET 4.5卸载了,重启服务器黑屏的解决方法
- linux服务器安装nodeJS步骤及踩坑记录(解决node -v报错cannot execute binary file: Exec format error的问题 - 在Linux中安装适用于arm64位的nodejs)以及node环境项目部署
- Maven(三):将web项目的war包热部署到远程Tomcat服务器
- 如何优雅的通过Shell脚本一键部署GO项目到服务器?
- Centos部署nagios+apache实现服务器监控
- LoadRunner压力测试时监控服务器Linux的资源情况
- 服务器部署十大问题系列二:配置与升级
- MySql 5.6 安装及下载(一键安装),配置命令封装为脚本(快捷工具),一键启动自动安装到服务,可设置手动启动、自动启动、延迟启动,适合做批量服务器部署
- centos上 小程序部署 nginx+https+ssL 提示错误:对应的服务器 TLS 为 TLS 1.0 ,小程序要求的 TLS 版本必须大于等于 1.2
- Linux 之 LNMP服务器搭建-PHP