手把手教你用宝塔搭建Fiora聊天室

发布于 2022-04-06  1340 次阅读


官网文档地址

项目演示:聊天室地址

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

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官网

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
nvm install 14 #使用nvm安装V14.x的node.js
nvm use 14     #启用V14.x的node.js
node -v        #查看node版本
npm -v         #查看npm版本
  • 使用npm安装yarn
npm install -g yarn
yarn --version #查看安装的yarn版本。有版本号就是安装成功。

(二)安装Redis和MongoDB

Redis官网地址 MongoDB官网地址

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

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

sudo yum update  #更新系统源
sudo yum upgrade #升级软件包
sudo yum insatll redis #安装redis

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

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

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.配置包管理系统

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 包

sudo yum install -y mongodb-org

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

exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

4.启动 MongoDB

sudo systemctl daemon-reload
sudo systemctl start mongod
sudo systemctl status mongod #验证MongoDB状态

三、安装Fiora主程序

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

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

  • 使用 yarn start 运行服务端会在断开 ssh 连接后停止运行, 推荐使用 pm2 来运行
# 安装 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换为自己的网站地址
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原因导致的。解决办法:

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

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

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端口被占用导致的。解决办法:

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导致的。解决办法:

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

项目演示:聊天室地址