我们可以在本地用 Shiny 部署非常漂亮的应用,当我们需要把可视化的内容共享给别人时,就需要一台部署了 Shiny Server 的服务器。
这时候我们有两种方案:
- Shiny Server
- Shinyapps.io
Shinyapp.io 是 R Studio 为 Shiny 进行网络部署而设计的。用户如果使用免费方案可以最多部署5个 Shiny 应用,各种方案的特点如下:
不过如果手头上正好有一台可用的服务器时,我们就可以自己在服务器上部署好 Shiny Server 环境,呈现自己开发的 Shiny 了。
R Studio 提供了两种版本的 Shiny Server :
当然专业版还是要收费的,最基本的服务每年要9995刀,支持20个用户同时操作。
Shiny Server 的下载说明在这里,目前 Shiny Server 只支持64位的Linux服务器,所以大家在选购或者租服务器之后要注意安装正确的操作系统。
以我用的 Ubuntu 14 为例:
第一步是要在服务器上先安装好 R 和 Shiny ,首先要在/etc/apt/sources.list里添加 CRAN 的镜像链接,或者直接敲下面的命令之一:
deb https://<my.favorite.cran.mirror>/bin/linux/ubuntu wily/
deb https://<my.favorite.cran.mirror>/bin/linux/ubuntu vivid/
deb https://<my.favorite.cran.mirror>/bin/linux/ubuntu trusty/
deb https://<my.favorite.cran.mirror>/bin/linux/ubuntu precise/
cran.mirror可以到这里挑选一个。
然后就可以愉快的安装 R 了:
sudo apt-get update
sudo apt-get install r-base
接着是 Shiny :
$ sudo su - \
-c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""
第一步完成之后还没法直接安装 Shiny Server ,还要再折腾着安装一下 gdebi ,因为 Shiny Server 是用 deb 文件发布的:
sudo apt-get install gdebi-core
$ wget https://download3.rstudio.org/ubuntu-12.04/x86_64/shiny-server-1.4.2.786-amd64.deb
$ sudo gdebi shiny-server-1.4.2.786-amd64.deb
注意这里12.04的意思并不是只适用于ubutntu 12.04版本,而是向下兼容。
到此位置 Shiny Server 就安装好了,默认安装在/opt/shiny-server/
,执行文件在/opt/shiny-server/bin/shiny-server
,默认端口是3838
。
端口号可以通过路由器做端口映射或者修改 Shiny Server 的配置文件,比如我就改成了中国人特别喜欢的8888
。好,下面看一下运行的效果。
<Your Server URL>:8888
的呈现结果是:
我们可以在/opt/shiny-server/samples
目录下为我们自己的应用建一个新的目录,比如apps
,这个目录下既可以直接上传 Shiny 应用,也可以再新建目录作为子app,比如我的<Your Server URL>:8888/apps/
的呈现结果是:
我在每个子目录下上传了写好的 ui.R 和 server.R 文件,比如打开最后一个 3to6_科学 :
最后就可以把这个表格的 URL 分享给别人。