官网文档地址
项目演示:聊天室地址
记得先换源(一键换源):
代码语言: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
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
代码语言: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
文件中
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主程序
- 下载主程序文件。
#作者的原始版本
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导致的。解决办法:
代码语言: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
导致的。解决办法:
pm2 delete all #删除所有项目
pm2 start yarn --name fiora -- start #重新创建fiora项目
pm2 retart fiora #重新启动fiora项目
pm2 ls #查看运行中的项目
pm2 save #保证重启VPS时候pm2也自启动
项目演示:聊天室地址