Shiny是R编程语言的库,允许您在本机R中创建交互式Web应用程序,而无需使用HTML,CSS或JavaScript等Web技术。将Shiny应用程序部署到Web上的方法有很多种; 本教程使用Shiny Server在Linode上托管示例Shiny应用程序。
首先您需要一台已经设置好可以使用sudo
命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器。
您还需要在您的本地计算机安装RStudio,如何安装请参考RStudio官方文档。
Shiny Server附带预装的演示应用程序。但是,为了演示部署应用程序的过程,您将在本地创建应用程序并将其部署到CVM上的Shiny Server。
install.packages('shiny')
ui.R
和server.R
。这些文件预先填充了一个演示应用程序,该应用程序将创建R的内置Old Faithful数据集的交互式直方图。编辑server.R
以根据您的喜好调整直方图的格式。例如,要使用黑色边框将条形更改为红色:hist(x, breaks = bins, col = 'red', border = 'black')
username
为您的Unix帐户用户名以及修改linodeIP
为您的CVM的公共IP地址或域名:scp -r ~/shiny/Example username@linodeIP:/home/username
应在您的CVM上完成本节中的步骤。
/etc/apt/sources.list
并将以下行添加到文件末尾:Ubuntu:
deb http://cran.rstudio.com/bin/linux/ubuntu xenial/
Debian:
deb http://cran.rstudio.com/bin/linux/debian stretch-cran34/
Ubuntu GPG密钥:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
Debian GPG密钥:
sudo apt install dirmngr
sudo apt-key adv --keyserver keys.gnupg.net --recv-key 'E19F5F87128899B192B1A2C2AD5F960A256A04AF'
sudo apt update
sudo apt install r-base
使用install.packages()
添加有Shiny包:
sudo su - \
-c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""
gdebi
:
sudo apt install gdebi-coregdebi
安装Shiny服务器软件包:
sudo gdebi shiny-server-1.5.6.875-amd64.debshiny-server
服务应自动启动。检查其状态:
sudo systemctl status shiny-server.service3838
端口 (例如example.com:3838
)。您应该看到Shiny Server欢迎页面:
默认情况下,Shiny Server /srv/shiny-server/
用作其站点目录。此目录中的任何Shiny应用程序都将自动提供。
/srv/shiny-server/
:sudo cp -r Example/ /srv/shiny-server/
example.com
为您的CVM的公共IP地址:example.com:3838/Example
您应该看到您的应用显示:
Shiny Server的配置文件存储在/etc/shiny-server/shiny-server.conf
:
/etc/shiny-server/shiny-server.conf
# Instruct Shiny Server to run applications as the user "shiny"
run_as shiny;
# Define a server that listens on port 3838
server {
listen 3838;
# Define a location at the base URL
location / {
# Host the directory of Shiny Apps stored in this directory
site_dir /srv/shiny-server;
# Log all Shiny output to files in this directory
log_dir /var/log/shiny-server;
# When a user visits the base URL rather than a particular application,
# an index of the applications available in this directory will be shown.
directory_index on;
}
}
您可以编辑Shiny Server将侦听的端口,或更改提供应用程序的站点目录。directory_index
选项允许访问者通过导航到该路径来查看目录的内容(例如,访问example.com:3838/sample-apps
将显示Shiny Server安装中包含的示例应用程序的列表)。您可以通过将此选项设置为禁用此行为并隐藏目录的内容off。有关配置Shiny Server的详细信息,请参阅官方管理员指南。
更改此文件后,重新启动该shiny-server
服务:
sudo systemctl restart shiny-server.service
为了使部署的应用程序与本地环境中所做的更改保持同步,请考虑使用更复杂的部署方法,例如Git或Rsync。生产部署还可能希望在反向代理后面运行Shiny Server以利用其他安全性和优化功能。怎么样,学会了吗?快尝试购买一台服务器进行测试吧!更多Linux教程请前往腾讯云+社区学习更多知识。
参考文献:《How to Deploy Interactive R Apps with Shiny Server》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有