参考:https://incoder.org/2018/03/27/rap2/
1、基本工具安装
yum install git
node安装参考:https://www.cnblogs.com/liuqi/p/6483317.html
2、获取
git clone https://github.com/thx/rap2-delos.git
3、创建db
mysql -e 'CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci';
如果主机上没有安装mysql或未配置免密登录,也可以直接在数据库里面创建;
配置文件
目录:rap2-delos/src/config
文件:config.dev.ts;其中dev,表示开发环境,其他同理
修改:config.dev.ts文件中db对象中username,password参数与本地或者开发环境的数据库信息匹配
PS:为rap2创建专用账户
GRANT ALL ON RAP2_DELOS_APP.* to rap2@'%' IDENTIFIED by '123456';
FLUSH PRIVILEGES ;
db在同一台主机,访问db失败,又创建了一个用户rap2@'localhost',访问ok。
4、启动项目
安装项目依赖包,项目根目录下执行
mysql/redis配置在config.*.ts文件中,在不修改任何配置的情况下, redis会通过默认端口 + 本机即可正常访问,确保redis-server打开即可。
启动redis-server
redis-server
后台执行可以使用nohup或pm2,这里推荐使用pm2,下面命令会安装pm2,并通过pm2来启动redis缓存服务
npm install -g pm2 npm run start:redis
# 安装项目所需依赖
npm install
编译安装报错
#error This version of node/NAN/v8 requires a C++11 compiler
需要升级gcc,参考:https://www.cnblogs.com/lzpong/p/5755678.html
下载: wget http://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz
解压,进入目录,执行:./contrib/download_prerequisites 耗时几分钟
创建目录:mkdir gcc-build-820
cd gcc-build-820
生产make文件:../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
编译:make -j4 耗时近1h
安装:make install
查看安装结果:ls /usr/local/bin | grep gcc
查看版本gcc -v 不用重启,其他用户重新登录
替换老动态库:
find / -name "libstdc++.so*"
cp /root/gcc-8.2.0/gcc-build-820/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25 /usr/lib64/
删除原libstdc++.so.6链接,建立新链接
ln -s libstdc++.so.6.0.25 libstdc++.so.6
查看新版本 gcc -v
gcc version 8.2.0 (GCC)
安装TypeScript编译包
npm install typescript -g
npm run build
初始化数据库表
npm run create-db
报错:[ioredis] Unhandled error event: Error: Failed to refresh slots cache.
检查redis配置,要求:无密码,默认本机、默认端口,如果不是,修改src/config/config*.ts,修改后,重新执行npm run build 会重新生成dist/config/下的链接配置
参考配置:
redis: {
port: 26379,
host: '127.0.0.1',
}
执行mocha测试用例和js代码规范检查
npm run check
启动开发模式的服务器 监视并在发生代码变更时自动重启
npm run dev
参考:https://blog.youkuaiyun.com/u012557538/article/details/82012196
此处不能用nohup后台启动,需要使用pm2来管理nodejs进程,默认使用8080端口,如被占用,修改dist/config下的port参数(或src/config/下的配置,修改src下的配置需要重新build,以更新dist下的config配置)
pm2 start dispatch.js --name=rap-server-delos
报没有pm2命令,将直接安装的pm2路径加到当前系统用户环境变量里面
启动成功后访问对应主机8082端口,显示:Hello RAP!
生产模式
# 1. 修改/config/config.prod.js中的服务器配置 # 2. 启动生产模式服务器 npm start
以pm2启动生产模式:修改dist/config/config.prod.js 端口为8081;以便和开发环境区分开;
设置启动变量:
NODE_ENV=production 临时设置,端口连接中断后失效
cd dist; pm2 start dispatch.js --name=rap-server-delos-prod
pm2 status 查看各进程状态