前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你用宝塔搭建Fiora聊天室 – 学金融的文史哲小生

手把手教你用宝塔搭建Fiora聊天室 – 学金融的文史哲小生

作者头像
去海边整点薯条
发布2022-11-01 14:17:08
7930
发布2022-11-01 14:17:08
举报
文章被收录于专栏:数模计量

官网文档地址

项目演示:聊天室地址

记得先换源(一键换源):

代码语言:javascript
复制
bash <(curl -sSL https://img.caoyongzhuo.cn/gh/SuperManito/LinuxMirrors@main/ChangeMirrors.sh)

一、前提要求

系统要求

内存要求

硬盘要求

Centos7x(别选8)

4G+(8G最好)

20G+(40G最好)

带宽要求

环境要求

软件要求

5Mbps+(10Mbps最好)

GIT YARN NVM NODE.JS等

Finalshell(其它SSH软件)

二、环境配置

  • 要运行 Fiora, 你需要 Node.js(推荐 v14 LTS 版本), MongoDB 和 redis

(一)安装nvm、Node.js、yarn

这里推荐使用nvm安装node.js然后使用npm安装yarn

  • 安装nvm

nvm官网

代码语言:javascript
复制
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
或者
cd /home
git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
git checkout v0.39.1
. ./nvm.sh
vim ~/.bashrc
将下面的代码输入配置文件
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
  • 使用nvm安装node.js
代码语言:javascript
复制
nvm install 14 #使用nvm安装V14.x的node.js
nvm use 14     #启用V14.x的node.js
node -v        #查看node版本
npm -v         #查看npm版本
  • 使用npm安装yarn
代码语言:javascript
复制
npm install -g yarn
yarn --version #查看安装的yarn版本。有版本号就是安装成功。

(二)安装Redis和MongoDB

Redis官网地址 MongoDB官网地址

  • 安装Redis(这里只演示Cenos7的系统。其它系统自行解决。)

1.使用Centos的官网源来安装Redis

代码语言:javascript
复制
sudo yum update  #更新系统源
sudo yum upgrade #升级软件包
sudo yum insatll redis #安装redis

2.从 Snapcraft 安装Redis(替代方案)

代码语言:javascript
复制
sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install redis

3.设置开机启动Redis

代码语言:javascript
复制
sudo vim /usr/lib/systemd/system/redis.service

添加下面的内容到配置文件
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload #保存并退出,执行这句话
sudo systemctl start redis.service #启动服务
sudo systemctl enable redis.service #设置开机自启动
  • 安装MongoDB(这里只演示Cenos7的系统。其它系统自行解决。)

1.配置包管理系统

代码语言:javascript
复制
vim /etc/yum.repos.d/mongodb-org-5.0.repo #编辑软件源,并添加下面的内容
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

2.安装 MongoDB 包

代码语言:javascript
复制
sudo yum install -y mongodb-org

3.请将以下exclude指令添加到您的/etc/yum.conf文件中

代码语言:javascript
复制
exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

4.启动 MongoDB

代码语言:javascript
复制
sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl status mongod #验证MongoDB状态

三、安装Fiora主程序

  • 下载主程序文件。
代码语言:javascript
复制
#作者的原始版本
git clone https://github.com/yinxin630/fiora.git -b master
#我自己的修改版(修改了有些BUG)
git clone https://github.com/TonaSmith/fiora_signed
  • 进入到安装目录安装依赖
代码语言:javascript
复制
cd fiora
yarn install
  • 构建客户端代码并配置 JwtSecret
代码语言:javascript
复制
yarn build:web
echo "JwtSecret=<string>" > .env2 #要将 <string> 替换为一个秘密文本
  • 启动服务端
代码语言:javascript
复制
yarn start

使用浏览器打开 http://[ip地址]:[端口](比如 http://127.0.0.1:9200)

  • 使用 yarn start 运行服务端会在断开 ssh 连接后停止运行, 推荐使用 pm2 来运行
代码语言:javascript
复制
# 安装 pm2
npm install -g pm2
# 使用 pm2 运行 fiora
pm2 start yarn --name fiora -- start
# 查看 pm2 应用状态
pm2 ls
# 查看 pm2 fiora 日志
pm2 logs fiora

四、域名反代

  • 在宝塔面板中新建网站
  • 然后配置HTTPS(SSL证书)
  • 打开配置文件,将文件内容替换为如下内容
  • chat.caoyongzhuo.cn换为自己的网站地址
代码语言:javascript
复制
server
{
    listen 80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    listen [::]:80;
    server_name chat.caoyongzhuo.cn;
    root /www/wwwroot/chat.caoyongzhuo.cn;
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/chat.caoyongzhuo.cn/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/chat.caoyongzhuo.cn/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
location / {
    proxy_pass http://127.0.0.1:9200;
    proxy_set_header Host             $host;
    proxy_set_header X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forward-Proto http;
    proxy_set_header X-Nginx-Proxy true;
    proxy_http_version 1.1;
    proxy_redirect off;
}
    include enable-php-71.conf;
    #PHP-INFO-END
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/chat.caoyongzhuo.cn.conf;
    #REWRITE-END
    access_log  /www/wwwlogs/chat.caoyongzhuo.cn.log;
    error_log  /www/wwwlogs/chat.caoyongzhuo.cn.error.log;
}

五、搭建中遇到的问题

  • 启动yarn install时候遇到“权限不够的问题”

这是由于nvm的node目录对Fiora主程序目录进行请求时用户组不是root原因导致的。解决办法:

代码语言:javascript
复制
#进入宝塔面板 /www/wwwroot/自己的网站
例如:/www/wwwroot/chat.caoyongzhuo.cn
#将chat.caoyongzhuo.cn整个文件夹的权限从www改为root即可
  • 启动yarn install报错

很有可能是node的版本低于14导致的。解决办法:

代码语言:javascript
复制
nvm install 15 #使用nvm安装node v.15 版本
nvm use 15     #使用nvm启动node v.15 版本
yarn insatll   #重新安装依赖
  • 第二次运行yarn start或者pm2 start yarn --name fiora -- start时失败

这是由于9200端口被占用导致的。解决办法:

代码语言:javascript
复制
sudo lsof -i :9200 #查看端口9200下的程序pid号
sudo kill -9 31363 #杀死该pid。如31362
yarn start 或者 pm2 start yarn --name fiora -- start #重新运行即可
  • PM2管理器中有多个fiora项目

这是由于多次运行pm2 start yarn --name fiora -- start导致的。解决办法:

代码语言:javascript
复制
pm2 delete all #删除所有项目
pm2 start yarn --name fiora -- start #重新创建fiora项目
pm2 retart fiora #重新启动fiora项目
pm2 ls #查看运行中的项目
pm2 save #保证重启VPS时候pm2也自启动

项目演示:聊天室地址

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前提要求
  • 二、环境配置
    • (一)安装nvm、Node.js、yarn
      • (二)安装Redis和MongoDB
      • 三、安装Fiora主程序
      • 四、域名反代
      • 五、搭建中遇到的问题
      相关产品与服务
      云数据库 Redis®
      腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档