最近天天被“防诈骗”慰问打电话,于是便一时心起,干脆搭建自己的聊天平台,于是有了本次记录。
大环境如下:腾讯云centos7+宝塔面板+apache
需要的软件:MongoDB + Redis + Node.js版本管理器
如图:
需要放行的端口有:9200(访问页面端口)、27017(MongoDB数据库端口)——需要在服务器和宝塔页面同时放行
好到此为止安装环境已经就位,接下来正式开始
————————————————————————————————————————————————
1.登录宝塔终端/ssh连接也行
2.在宝塔面板根目录下面创建opt文件夹 应该为:/www/wwwroot/opt
3.拉取源码到opt文件夹中:git clone https://github.com/yinxin630/fiora.git -b master /opt/fiora
4.在宝塔面板左侧——网站——>选择添加Node项目
如下:
注意选择node版本最好是Node v14以上
5.在选择Node版本旁边,点击安装其他版本,再按照下图点击
6.最好按照下图按照模块,别问为什么————(踩了一万个坑,耽搁好几个小时,yarn与Nodejs版本不兼容)( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
7.进入宝塔终端输入
node -v
npm -v
检查环境是否正常,若不正常报各种错,就是版本与yarn不兼容,多换几个版本尝试
8.输入yarn -v 有版本信息则正常,反之就是不兼容nodejs版本,输入以下代码手动安装一下。
npm i -g yarn
yarn
9.cd /www/wwwroot/opt/fiora 进入fiora文件夹
useradd -M fiora && usermod -L fiora
chown - fiora:fiora /opt/fiora 给权限
npm run build:client && npm run move-dist 构建和转移产物
(若报错,则换nodejs 版本试试)
10.npm start
启动服务
11.ln -sf $(which node) /usr/bin/node
先做个软连接
若报错/usr/bin/env: ‘node’: Too many levels of symbolic links
先cd /usr/local/bin/,将相同连接删除 rm 名字
若还报错,则换个Nodejs命令行版本,在本文第五条提过
12.接下来,使用http://服务器IP:9200,若你绑定了域名则输入域名即可
13.注册登录,返回终端输入yarn script getUserId admin(admin代指的是你自己的用户名)
若报错或者其他原因不能获取到userId
看以下操作
宝塔面板,在你最开始添加Node项目的位置,点击项目名称,项目日志
红线位置为自己的userid
14.设置管理员权限
方法一
输入:export Administrator=内容(刚刚那串userid) Port=9200
之后,将以下一起复制到终端
cat > /etc/systemd/system/fiora.service <<EOF
[Unit]
Description=fiora
After=network.target
Wants=network.target
[Service]
Type=simple
PIDFile=/var/run/fiora.pid
ExecStart=$(command -v npm) start
WorkingDirectory=/opt/fiora Environment=Administrator=$Administrator Port=$Port
User=fiora
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
EOF
刷新fiora的主页,左侧状态栏是否有皇冠标志,没有的或以上代码报错则看方法二
方法二
在/opt/fiora文件夹内新建文件命名为.env
vi .env
输入:Administrator=内容(刚刚那串userid) Port=9200
保存后,反复刷新界面,若还不行,看方法三
方法三:
进入opt/fiora/packages/config
vim server.ts
在以下位置写入 administrator =你的userid
保存后,反复刷新,若宝塔面板Node项目开启后秒关闭,则重启几次后,再将
刚刚写入的代码注释掉
再此重启项目,刷新界面即可
若以上方法均不行,建议去GitHub上问问
15设置服务自启动
systemctl start fiora
systemctl enable fiora
16.重启一下服务systemctl daemon-reload,再看看是否正常运行
完了~
╮(╯▽╰)╭