安装Tars框架

ChiuChiu 267 9月14日 发布

安装Tars框架

本文在Centos7下进行,用户为root,因此使用的命令不会出现sudo

准备工作

机器内存最好有2G或以上,1G内存应该勉强吧,没试过。我的机器2G内存,因为还运行了docker,导致后来编译安装时内存不足。如果是小内存机器,在编译前最好把占用内存的软件关掉。

  • update

先更新一下,可能这步不是必须的,但我此前没有更新,安装总是报错

yum update
  • cmake

目前,安装tars框架需要cmake3.2以上的版本,但yum install的是2.x版本,因此,需要到cmake官网下载cmake 3.x;这里提供一个3.18.2的下载地址:https://github.com/Kitware/CM...

下载完成后先别急着安装,如果系统没有OpenSSL,编译的时候会报错,解决办法:

yum -y install ncurses-devel openssl-devel

开始安装 cmake-3.18.2

tar -zxvf cmake-3.18.2.tar.gz
cd cmake-3.18.2
./bootstrap
gmake
gmake install

如果安装完成后,cmake -version报错,可以这样解决

hash -r

最后

yum install glibc-devel gcc gcc-c++ bison flex which psmisc zlib-devel

安装开发环境

我的顺序是先安装框架,再安装mysql(假如没有mysql),因为安装框架出现问题的机率比mysql的大,先解决大问题。

cd ~

从github下载源码

git clone https://github.com/TarsCloud/TarsFramework.git --recursive
可能因为墙的原因,这里并不能成功下载。我之前因为下载的不完整,导致编译的时候一直报错gtest的问题。

可参考解决的方法:我有一个境外的VPS,执行上面的克隆命令,几秒钟就完成了,然后把TarsFramework文件夹打包下载下来,再上传到目标机器上,成功解决了编译报错的问题。

这里贴一个我下载好的包,版本2.4.6
链接: https://pan.baidu.com/s/19P49... 提取码: c9iv

编译安装

如果是自己上传的zip包,执行这步,如果不是请跳过。解压包

unzip TarsFramework.zip

编译 && 安装

编译

cd TarsFramework
git submodule update --remote --recursive
cd build
cmake ..
make -j4 //单核的机器不建议加-j4参数,直接用make就行了

编译成功后,创建两个文件夹

mkdir /usr/local/tars
mkdir /usr/local/app

安装

make install

安装mysql(如果已安装的跳过,进入安装TarsWeb步骤)

我使用yum的方式安装,也可以用其它的方式安装。

安装mysql-5.7

cd ~
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
yum -y install mysql-devel

启动

systemctl start  mysqld.service
systemctl status mysqld.service

获取root用户的初始密码

grep "password" /var/log/mysqld.log

上面命令显示下面内容:

2020-09-14T00:30:28.595569Z 1 [Note] A temporary password is generated for root@localhost: hoes>fFN9fDo

内容最后的hoes>fFN9fDo则是初始密码

mysql相关设置

使用上面获取的初始密码登录mysql

mysql -uroot -p

然后在Enter password: 后面输入密码,回车登录。

解除弱密码限制

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

修改root@localhost的密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你要设置的密码';

为root添加外网连接

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你要设置的密码' WITH GRANT OPTION;

刷新权限并退出

mysql> flush privileges;
mysql> quit;

安装Tars框架

下载

# 如果 git clone 慢的话,可能直接到github上下载zip包解压,或者先拉到码云上,再从码云上clone

git clone https://github.com/TarsCloud/TarsWeb.git
mv TarsWeb web
cp -rf web /usr/local/tars/cpp/deploy/

部署

设置执行权限

cd /usr/local/tars/cpp/deploy
chmod a+x linux-install.sh

部署

查看网卡名称,有内网IP的那个

ifconfig
./linux-install.sh MYSQL_HOST MYSQL_PASSWORD INET REBUILD(false[default]/true) SLAVE(false[default]/true) MYSQL_USER MYSQL_PORT
  • MYSQL_HOST: mysql的IP地址,如果是内网或同一台机器,可以用内网IP,比如内网IP 172.27.0.2
  • MYSQL_USER:一般用root,因为需要的权限太多就不一一列出来了,也可以是其它有相关权限的用户
  • MYSQL_PASSWORD:root用户的密码
  • MYSQL_PORT:一般是3306,除非你改了
  • INET:网卡名称,比如eth0
  • REBUILD:是否重建数据库,通常为false
  • SLAVE:是否是从节点

示例:

./linux-install.sh 172.27.0.2 123456 eth0 false false root 3306

可能的错误,没报错最好
部署完成后,可能报错 pm2 not found。这里官方的解决方法是:

source /etc/profile

但这方法我这里并不能解决。我的解决方法是

npm install -g pm2

然后重新执行一次部署的命令./linux-install.sh 172.27.0.2 123456 eth0 false false root 3306

命令pm2 list正常后就可能进行最后的操作了。
运行

cd /usr/local/app/web
npm run start

没有报错的话就可以在浏览器中使用端口3000访问了。http://ip:3000

自启动与任务计划

添加自启动项

vi /etc/rc.local

在文件的最后加入下面内容

/usr/local/app/tars/tars-start.sh

保存退出。

因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权。为了保险/usr/local/app/tars/tars-start.sh也给个权限

chmod +x /usr/local/app/tars/tars-start.sh
chmod +x /etc/rc.d/rc.local

添加计划任务

vi /etc/crontab

在文件的最后加入下面内容

* * * * * /usr/local/app/tars/check.sh

保存退出。
加载任务,使之生效:

crontab /etc/crontab

查看任务:

crontab -l

评论
载入中...