1 Linux环境
1.1 Linux系统版本建议
(1)CentOS7.6及以上版本;
CentOS查看版本命令:lsb_release -a;
CentOS系统安装教程参考文档:
http://blog.csdn.net/H875035681/article/details/123153807
(2)Ubuntu16.04及以上版本;
Ubuntu查看版本命令:lsb_release -a;
Ubuntu系统安装教程参考文档:
http://blog.csdn.net/m0_58085107/article/details/123856822
2 BI部署及环境
该文档为最新版本BI安装教程,老版本linux安装BI点此处跳转
注:以下操作请在root用户权限下完成。
安装前请使用命令检查该Linux环境中是否已安装node、npm、pm2、redis、jdk及版本号。
node -v
npm -v
pm2 -v
redis-server -v
java -version
(如果环境中已有node、npm、pm2、redis、jdk且同上图版本相同,可跳过JDK安装、node安装、redis安装,直接启动BI服务。如果没node、npm、pm2、redis、jdk这些环境则参照该文档下面章节步骤安装相关环境组件。)
当前示例在centos7.6环境中的操作如下,Ubuntu环境类似,仅部分操作命令有所不同。
2.1 BI安装包上传并解压
在linux系统中/root/目录下新建文件夹Cross,命令如下:
cd /root/
mkdir Cross
可以使用xftp工具将BI安装包上传至linux系统/root/Cross/目录下
解压安装包(例如BI安装包名为LinuxBInewV2.0.tar.gz),命令如下:
tar -zxvf LinuxBInewV2.0.tar.gz
3 安装jdk1.8
在线安装:
#yum -y install java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7
#yum -y install java-1.8.0-openjdk-devel-1.8.0.262.b10-1.el7
验证,注意下面的目录可能需要根据这条命令的结果来调整:
# rpm -ql java-1.8.0-openjdk-devel.x86_64 | grep bin$
# /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/bin/java -version
设置路径:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
echo $JAVA_HOME
配置环境变量
# vi ~/.bashrc
在文件末尾位置加入以下内容:
export JAVA_HOME=java安装路径
export PATH=$JAVA_HOME/bin:$PATH
刷新配置,查看是否完成配置
# source ~/.bashrc
# echo $JAVA_HOME
上述为在线安装JDK,JDK版本在JDK1.8.0.181~~JDK1.8.0.352之间,若想离线安装JDK可在网上搜索安装教程自行安装。
4 安装node和npm
4.1 安装node
注:如果Linux系统是麒麟系统,请下载与麒麟系统匹配的arm 64位node-V10.16.3版本,
ARM架构node下载链接:https://nodejs.org/download/release/v10.16.3/node-v10.16.3-linux-arm64.tar.gz
(1)解压BI安装包找到node文件
tar -zxvf ourwaybinewV2.0.tar.gz
Linux版BI软件包中已包含node文件,解压BI安装包后在ourwaybinewV2.0文件夹下
4.2 将node文件夹移动到/opt/目录
将解压出的文件夹移动到/opt/目录下,命令如下(须在/root目录下执行)
mv node-v10.16.3-linux-x64/ /opt/
(MV为linux命令,node文件/文件夹和 移动的目的目录中间要有空格)
4.3 拷贝node到/usr/local/bin目录下
将node拷贝到/usr/local/bin目录,命令如下:(不会返回结果)
cp /opt/node-v10.16.3-linux-x64/bin/node /usr/local/bin/
4.4 拷贝node_modules文件夹到/usr/local/lib目录下
将node_modules文件夹拷贝到/usr/local/lib目录,命令如下:(不会返回结果)
cp -r /opt/node-v10.16.3-linux-x64/lib/node_modules /usr/local/lib/
4.5 创建npm链接到/usr/local/bin目录
创建npm命令链接,命令如下:
ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
5 安装pm2
5.1 使用npm安装pm2模块
使用npm安装pm2模块,命令如下(此命令需要几分钟执行时间):
npm install pm2@latest -g
如果安装时弹出以下提示:npm WARN invalid config registry=""
npm WARN invalid config Must be a full url with'http://'
解决方法:
修改npm镜像设置
清空缓存
npm cache clean --force
查看当前的npm镜像设置
npm config get registry
切换新源
npm config set registry https://registry.npmmirror.com
查看新源是否设置成功
npm config get registry
执行安装命令
npm install pm2 -g
成功效果类似下图:
5.2 验证安装结果
执行命令验证安装是否成功,命令如下:
node -v
npm -v
pm2 -v
6 安装Redis
6.1 安装Redis服务
新环境安装redis前要安装 gcc++
yum install gcc-c++ libstdc++-devel
安装过程
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
注意gcc依赖了很多东西,有些包可能系统已经装了,有些没有,防止出意外,最好都走一遍。
(1)获取redis资源
软件安装包中已经含有redis文件包,解压后找到ourwaybinewv2.0/redis/redis-5.0.8/
(2)解压
tar xzvf redis-5.0.8.tar.gz (安装包中已经解压好,可跳过这一步)
(3)安装
cd redis-5.0.8
make
cd src
make install
6.2 启动Redis服务,并测试是否启动成功
启动redis服务
redis-server &
//查看redis版本
redis-server -v
执行redis-server后,命令行会阻塞,需要在另一个终端测试:
redis-cli
set foo bar
get foo
7 BI服务启动
7.1 安装服务模块(离线包中已经有离线的node_modules依赖文件,更新补丁时才需要此步骤安装第三方依赖文件)
在Cross_SBI、Cross_SBI_API两个目录下分别执行cnpm i命令,示例如下(注意路径):
cd /root/Cross/ourwaybinewV2.0/Cross_SBI
cnpm i (用的国内镜像)
cd /root/Cross/ourwaybinewV2.0/Cross_SBI_API
cnpm i
执行效果类似下图:
若遇到提示错误,再执行一次就行(有可能某些是因为网络原因导致执行不成功)
7.2 启动服务
在三个目录下分别执行启动命令,示例如下(注意路径):
cd /root/Cross/ourwaybinewV2.0/Cross_SBI_API
npm run pm2
cd /root/Cross/ourwaybinewV2.0/Cross_SBI
npm run pm2
cd /root/Cross/ourwaybinewV2.0/bi-full
npm run pm2
或者可以使用sh命令启动安装包中的newbi.sh
启动完成:
使用命令:pm2 list 查看确认各项服务正常,并在客户端火狐或者谷歌浏览器中输入
服务器的“ip:port” 访问(客户端与服务器端需在相同网段内,否则需要做网络映射)
8 其他问题解决方法汇总
8.1 CentOS下MySQL的安装
yum命令默认无法安装MySQL-server程序,可通添加MySQL的yum源,然后执行自动安装,命令如下:
rpm -Uvh
http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum install mysql mysql-server mysql-libs mysql-server
安装完成后直接输入mysql命令即可进入mysql数据库,默认是空密码
其他备用资源:
(1)mysql重置密码方法(如果忘记密码的话,可以使用此方法来重置)
http://cnblogs.com/bincoding/p/6480779.html
(2)将root的用户开启在外部访问(若不开启,只以在本机访问)
http://blog.csdn.net/qq_27575627/article/details/50172673
8.2 设置init.sh脚本root用户登陆自启动
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service#禁止firewall开机启动
因为重启linux后,每次都要手工启动redis和pm2的相关服务,所以可以设置为在linux中开机启动相关的服务,操作如下(建议使用此方法):
在/root/.bash_profile配置文件中添加一行命令语句,命令如下:
(1)cd /root
(2)vi .bash_profile //打开编辑用户配置文件.bash_profile文件
(3)加入一行执行命令:
sh /root/init.sh //执行该文件
保存后关闭
第(3)步添加命令如图所示:
其中init.sh脚本内容,示例如下(注意路径):
#!/bin/sh
redis-server &
cd /root/Cross/ourwaybinewV2.0/Cross_SBI_API
npm run pm2
cd /root/Cross/ourwaybinewV2.0/Cross_SBI
npm run pm2
cd /root/Cross/ourwaybinewV2.0/bi-full
npm run pm2
cd ~
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
8.3 设置init.sh脚本开机自动运行
在/etc/rc.d/rc.local配置文件中添加一行命令语句,命令如下:
(1)cd /ect/rc.d //进入/ect/rc.d目录
(2)vi rc.local //打开并编辑rc.local文件
(3)加入一行命令sh /root/init.sh,保存后关闭
(4)chmod +x /etc/rc.d/rc.local
第(3)步添加命令如图所示:
8.4 设置网络开机自启动
修改ifcfg-ens33配置文件,实现开机网络自动开启,命令如下:
(1)cd /etc/sysconfig/network-scripts
(2)gedit ifcfg-ens33
(3)ONBOOT = no 改为ONBOOT = yes
修改过程如图所示:
8.5 查看IP命令
Ifconfig
8.6 安装中的问题
(1)cnpm与node版本不匹配,报错提示”Cannot find module 'fs/promises'”
解决方法:降低cnpm版本
(2)系统错误提示:Script not found
JDK未安装
解决方法:安装jdk1.8 版本在JDK1.8.0.181~~JDK1.8.0.352之间,并配置环境变量
(3)系统错误提示:pm2 command not found
pm2未安装
解决方法:安装pm2,具体步骤参照第二章第4节安装pm2
(4)如需用到oracle数据库作为数据源,请在服务器端安装oracle客户端。