实验组内部共享的话,局域网就可以了。构建好app目录,当然还有其他方法,详见http://shiny.rstudio.com/articles/app-formats.html。
.├── app_run.R└── app1├── server.R└── ui.R
## app_run.Rlibrary(shiny)runApp(appDir = "appdir/app1",port = 3333,launch.browser = False,host = "0.0.0.0")
关键在于app_run.R里的runApp函数的几个参数,appDir为app文件夹路径,port为主机要开放的端口,launch.browser 运行时是否启动浏览器。host要设置为 “0.0.0.0”,其他机器才能访问。
开启端口
我的主机时Centos7 系统,开启端口的方法如下:
- 查询端口是否开启 ,例如我想用 3333,
sudo firewall-cmd --query-port=3333/tcp
- 如果没有开启,则开启
sudo firewall-cmd --add-port=3333/tcp --permanent# permanent 表示永久开启,不然重启会失效
- 重载入添加的端口后生效
firewall-cmd --reload
- 如果不想用了,关闭端口命令为
firewall-cmd --permanent --remove-port=3333/tcp
开启服务
最后运行下面代码就开启了主机服务
Rscript app_run.R
假如主机的ip为123.123.123.123,则局域网内的其他人访问 123.123.123.123:3333 ,就能使用shiny app 了。
