R教程-安装Shiny Server

适用产品列表

本教程支持的服务器产品为:

适用Linux版本

本教程以CentOS7.6_x64为例,理论上支持所有CentOS7版本,如果遇到问题请咨询QQ群:1139922583

教程开始

温馨提醒

如果您不熟悉Linux的话,建议下面的每一段命令都单独复制到shell命令框中执行,以下教程中如果出现加粗文字内容则表明需要进行交互输入,请务必留意和仔细阅读。

连接服务器shell

首先请根据快速上手教程连接服务器shell,当你能看到命令行中出现如下信息的时候就说明连接成功了:

#Last login: Wed Aug 12 16:10:02 2020 from X.X.X.X

安装R

请根据这个教程安装R并确保可以直接使用:

验证R安装

安装Rstudio-Server(可选,小白推荐)

请根据这个教程安装Rstudio-Server

安装Shiny-Server

在安装Server服务前,需要在R中安装shiny包,这个过程涉及gcc编译所以安装耗时比较长(HPC服务器约30分钟,NAT服务器要数小时),请耐心等待。

如果安装的时候中途断开了的话,可以参考安装R时使用的screen进行守护安装(参加安装R的教程)。

进入screen

screen

【注意】如果中途链接断掉了,不用担心,重新连接后输入screen -r即可重新回到安装(不用做其他操作,更不要重启啥的)。

sudo yum install libxml2-devel glibc-common -y
sudo su --c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""

如果不想一直挂着等,可以这个时候按Ctrl+A,松开后再按D,这样就可以退出screen了,这时候断开服务器连接也不会中断安装。出去吃个饭刷个剧之后回来,再连接服务器,输入screen -r即可回到安装界面。

目前httpuv包有一些bug,可能会无法编译安装最终shiny安装失败,作者建议安装dev版本。

【注意】以下几行代码仅限shiny包安装失败时使用

sudo su --c "R -e \"system('defaults write org.R-project.R force.LANG en_US.UTF-8')\""
sudo su --c "R -e \"install.packages('remotes', repos='https://cran.rstudio.com/')\""
sudo su --c "R -e \"remotes::install_github('rstudio/httpuv')\""
sudo su --c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""

安装完成Shiny包后,即可安装Server服务:

wget https://download3.rstudio.org/centos6.3/x86_64/shiny-server-1.5.14.948-x86_64.rpm
sudo yum install --nogpgcheck shiny-server-1.5.14.948-x86_64.rpm -y
sudo systemctl start shiny-server
sudo systemctl enable shiny-server

放行防火墙3838端口

firewall-cmd --zone=public --add-port=3838/tcp --permanent
firewall-cmd --reload

设置端口映射

Shiny-Server的默认端口是3838,因此只需要在服务器的控制面板中添加3838端口的映射即可,具体教程请查看这里:配置ipv4端口映射

端口映射

验证Shiny Server服务

service shiny-server status

如果看到如下信息,则说明安装成功了(重点是Active: active (running)):

● shiny-server.service - ShinyServer
   Loaded: loaded (/etc/systemd/system/shiny-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-02-23 15:47:59 UTC; 48s ago
 Main PID: 27858 (shiny-server)
    Tasks: 11 (limit: 4915)
   CGroup: /system.slice/shiny-server.service
           └─27858 /opt/shiny-server/ext/node/bin/shiny-server /opt/shiny-server/lib/main.js
 
Feb 23 15:47:59 shiny systemd[1]: Started ShinyServer.

测试访问

所以浏览中按照以下格式拼接网址:http://【公网IP】:【Rstudio公网端口】即可正常访问,本例中为 http://195.201.82.185:14474

交流社群

另外有解决不了的问题建议加云筏的Q群1139922583,一群热心小伙伴哟~