R Shiny网页在服务器的部署
创始人
2025-01-17 06:33:11
0

文章目录

  • 前言
  • 一、新建用户
  • 二、安装R环境
    • 1.安装R
    • 2.如何安装最新版R
    • 3.安装shiny包
  • 四、安装Shiny Server
  • 五、展示自己的网页
  • 总结


前言

以此文章记录我花了一整天的R Shiny部署过程。也为大家在未来的学习和部署提供参考。
我的服务器环境:阿里云CentOS 7.9


一、新建用户

shiny-server默认是以shiny用户来运行shiny应用的。在安装shiny-server的过程中,通常会创建一个名为shiny的用户。这是因为shiny-server的默认配置文件中,运行用户被设置为shiny,如果你在安装shiny-server时没有创建shiny用户,而是使用了其他的用户,那么你需要修改shiny-server的配置文件,将运行用户改为你创建的用户。否则,shiny-server可能无法正常运行。

1、在root账号下注册新账号,账号名为shiny。

useradd shiny 

为账号设置密码

passwd shiny 

在这里插入图片描述
2、接下来给用户添加root权限,这样就可以在用户账号下使用sudo命令了。通过修改sudoers文件来赋予新用户root权限。首先,查找sudoers文件的位置:

whereis sudoers 

为其赋予写权限:

chmod -v u+w /etc/sudoers 

在这里插入图片描述
使用vim打开并修改sudoers文件。

sudo vim /etc/sudoers 

在文件中添加新用户信息,找到 root ALL=(ALL) ALL 该行,在下面添加 shiny ALL=(ALL) ALL,如果不想每次sudo都要输入密码,可以写这个 shiny ALL=(ALL) NOPASSWD: ALL,然后:wq保存并退出。

在这里插入图片描述
3、收回sudoers文件的写权限,防止他人篡改:

chmod -v u-w /etc/sudoers 

在这里插入图片描述

二、安装R环境

1.安装R

首先进入用户账号

su - shiny 

在这里插入图片描述
然后可以跟随官网步骤:https://posit.co/download/shiny-server/
Step1 - Select your server version :我的是CentOS 7+
Step 2 - Install EPEL :

sudo yum install epel-release -y 

在这里插入图片描述
Step 3 - Install R and the Shiny R package : 如果用官网的代码

sudo yum install R 

安装的不是最新版,我这里默认从EPEL安装的是R 3.6.0版本

在这里插入图片描述
如果满足不了项目需求,可以手动安装最新版。

2.如何安装最新版R

首先,需要安装一些必要的依赖项。可以使用以下命令安装它们:

sudo yum install -y gcc gcc-c++ gcc-gfortran readline-devel cairo-devel libpng-devel libjpeg-turbo-devel libtiff-devel pango-devel libicu-devel libxml2-devel libcurl-devel openssl-devel libXt-devel 

在这里插入图片描述

接下来,需要下载R语言4.3.2包。可以使用以下命令从官方网站下载它:

wget https://cran.rstudio.com/src/base/R-4/R-4.3.2.tar.gz 

在这里插入图片描述

下载完成后,需要解压缩该文件并进入解压缩后的目录:

tar -xzf R-4.3.2.tar.gz cd R-4.3.2 

在这里插入图片描述
现在,可以运行以下命令来配置和编译R语言:

./configure --prefix=/usr/local --enable-R-shlib make sudo make install 

首先执行第一句:
在这里插入图片描述
报了个错,还需要安装bzip2,运行如下代码:

sudo yum install bzip2-devel 

在这里插入图片描述

再次运行以下命令:

./configure --prefix=/usr/local --enable-R-shlib 

在这里插入图片描述
又报错了,这里我们遵照提示,不用PCRE2了,改用PCRE1,运行:

./configure --prefix=/usr/local --enable-R-shlib --with-pcre1 

在这里插入图片描述
这下第一句执行成功了,再执行第二句:

make 

在这里插入图片描述
成功!再执行第三句:

sudo make install 

在这里插入图片描述
编译完成后,可以使用以下命令启动R语言检查是否已安装最新版:

R 

在这里插入图片描述

3.安装shiny包

继续遵照官网剩下的Step2安装shiny包:

sudo R -e "install.packages('shiny', repos = 'https://mirror.tuna.tsinghua.edu.cn/CRAN/')" #主动添加源,修改默认国外源 

tips:如果sudo R报找不到命令的错误,可以手动输入R进入R语言,然后用install.packages(‘shiny’, repos = ‘https://mirror.tuna.tsinghua.edu.cn/CRAN/’)安装,我就是这样,如下图:

在这里插入图片描述
两次都是yes,因为运行不了sudo R所以权限不够,只能将包安装在用户目录下。

四、安装Shiny Server

遵照官网Step4 - Install Shiny Server :
首先进入/srv文件夹,一会把shiny-server-1.5.21.1012-x86_64.rpm文件下载到这,下载到其他地方也行。

cd /srv 

运行:

sudo wget https://download3.rstudio.org/centos7/x86_64/shiny-server-1.5.21.1012-x86_64.rpm 

在这里插入图片描述
安装server:

sudo yum install --nogpgcheck shiny-server-1.5.21.1012-x86_64.rpm 

安装完成后可以执行以下代码查看server运行的状态:

sudo systemctl status shiny-server 

在这里插入图片描述
绿色显示正在运行。在此也给出其他关于Shiny Server的指令:

##重启 sudo systemctl restart shiny-server ##查看状态  sudo systemctl status shiny-server  ##开启  sudo systemctl start shiny-server  ##停止  sudo systemctl stop shiny-server 

此时,在浏览器输入 <服务器ip>:3838 就可以访问shiny-server的默认主页(3838是shiny-server的默认端口号),比如我的服务器ip是112.124.7.213,那就输入112.124.7.213:3838。
在这里插入图片描述
注意公网ip需要开放服务器端口3838,即可正常访问,我用的是阿里云服务器,在服务器控制台 - 网络与安全 - 安全组
在这里插入图片描述
选择“操作栏”的“管理规则”,手动添加一栏
在这里插入图片描述

五、展示自己的网页

将自己的Rshiny项目复制进 /srv/shiny-server
在这里插入图片描述
图中shiny-app是我自己的项目,其余两个是官方示例。
我的shiny_app文件夹内容如下:
在这里插入图片描述
此时,通过 <服务器ip>:3838/<文件夹名> 即可访问,比如对于我就是112.124.7.213:3838/shiny_app


总结

还有不足理解不深的地方,请大家多指教。

相关内容

热门资讯

辅助了解!情怀莆仙吹牛脚本(辅... 辅助了解!情怀莆仙吹牛脚本(辅助)捉住捣蛋鸡都是存在有辅助挂(哔哩哔哩)1、超多福利:超高返利,海量...
详细了解!新518互游插件(辅... 详细了解!新518互游插件(辅助)白金岛歪胡子竟然是真的辅助下载(哔哩哔哩)运新518互游插件辅助工...
教你了解!宝宝吃吃吃外g挂(辅... 教你了解!宝宝吃吃吃外g挂(辅助)开心娱乐一直真的是有辅助软件(哔哩哔哩)1、许多玩家不知道宝宝吃吃...
分享了解!微信开心泉州辅助(辅... 分享了解!微信开心泉州辅助(辅助)怀远麻将本来是真的辅助器(哔哩哔哩)1、实时微信开心泉州辅助透视辅...
关于了解!冰球突破辅助软件(辅... 关于了解!冰球突破辅助软件(辅助)和和嫩江麻将果然是有辅助神器(哔哩哔哩)1.冰球突破辅助软件 选牌...
科普了解!川娱竞技血战辅助器(... 科普了解!川娱竞技血战辅助器(辅助)中至鹰潭麻将原来是真的辅助平台(哔哩哔哩)1、玩家可以在川娱竞技...
推荐了解!微乐小程序辅助(辅助... 推荐了解!微乐小程序辅助(辅助)聚游广东麻将本来有挂辅助软件(哔哩哔哩)1、不需要AI权限,帮助你快...
必备了解!皮皮游戏辅助器(辅助... 必备了解!皮皮游戏辅助器(辅助)盛世2果然有挂辅助安装(哔哩哔哩);1、玩家可以在皮皮游戏辅助器线上...
透视了解!三哥玩透视辅助(辅助... 透视了解!三哥玩透视辅助(辅助)米乐互娱竟然是真的辅助脚本(哔哩哔哩)进入游戏-大厅左侧-新手福利-...
解谜了解!丽水跑得快辅助工具(... 解谜了解!丽水跑得快辅助工具(辅助)壹号娱乐确实有挂辅助插件(哔哩哔哩)1、在丽水跑得快辅助工具插件...