实验组内部共享的话,局域网就可以了。构建好app目录,当然还有其他方法,详见http://shiny.rstudio.com/articles/app-formats.html

  1. .
  2. ├── app_run.R
  3. └── app1
  4. ├── server.R
  5. └── ui.R
  1. ## app_run.R
  2. library(shiny)
  3. runApp(appDir = "appdir/app1",
  4. port = 3333,
  5. launch.browser = False,
  6. host = "0.0.0.0"
  7. )

关键在于app_run.R里的runApp函数的几个参数,appDir为app文件夹路径,port为主机要开放的端口,launch.browser 运行时是否启动浏览器。host要设置为 “0.0.0.0”,其他机器才能访问。

开启端口

我的主机时Centos7 系统,开启端口的方法如下:

  • 查询端口是否开启 ,例如我想用 3333,
  1. sudo firewall-cmd --query-port=3333/tcp
  • 如果没有开启,则开启
  1. sudo firewall-cmd --add-port=3333/tcp --permanent
  2. # permanent 表示永久开启,不然重启会失效
  • 重载入添加的端口后生效
  1. firewall-cmd --reload
  • 如果不想用了,关闭端口命令为
  1. firewall-cmd --permanent --remove-port=3333/tcp

开启服务

最后运行下面代码就开启了主机服务

  1. Rscript app_run.R

假如主机的ip为123.123.123.123,则局域网内的其他人访问 123.123.123.123:3333 ,就能使用shiny app 了。