实验组内部共享的话,局域网就可以了。构建好app目录,当然还有其他方法,详见http://shiny.rstudio.com/articles/app-formats.html。
.
├── app_run.R
└── app1
├── server.R
└── ui.R
## app_run.R
library(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 了。