提示:
- 所有体系课见专栏:Go 项目开发极速入门实战课;
- 欢迎加入 云原生 AI 实战 星球,12+ 高质量体系课、20+ 高质量实战项目助你在 AI 时代建立技术竞争力(聚焦于 Go、云原生、AI Infra)。
在学习一个开源项目时,建议先将项目部署成功。这样学习过程中可以直接魔改测试。本节课,来教你快速部署 fastgo 项目。
部署环境
本项目的部署环境要求如下:
- Go 版本:>= 1.24.0;
- 操作系统: 建议使用 Linux 操作系统。本课程的部署环境为 Debian 12。如有条件,建议直接使用 Debian 12 系统,这样可以避免因操作系统差异带来的安装问题。若非 Debian 12 系统,出现部署问题,需要你自己根据错误日志,解决问题。
部署 fastgo 项目分为以下 3 步:
- Go 编译环境安装和配置;
- 安装和配置 MariaDB 数据库;
- 初始化
fastgo
数据库; - 安装和配置 fastgo 项目。
步骤 1:Go 编译环境安装和配置
提示:如果你已经安装了 Go 编译环境,可跳过这一步。
安装 Go 编译环境的步骤相对简单,只需下载源码包并配置相应的环境变量。具体步骤如下。
1. 下载安装包。
你可以从 Go 语言官方网站下载对应的 Go 安装包和源码包。以下命令将下载 go1.24.0 安装包:
$ wget -P /tmp/ https://go.dev/dl/go1.24.0.linux-amd64.tar.gz
2. 解压并安装。
请执行以下命令解压并安装 Go 编译工具及源码:
$ mkdir -p $HOME/go
$ tar -xvzf /tmp/go1.24.0.linux-amd64.tar.gz -C $HOME/go
$ mv $HOME/go/go $HOME/go/go1.24.0
3. 配置 $HOME/.bashrc
文件。
请按照以下命令将 Go 的相关环境变量追加到 HOME/.bashrc
文件中。
$ tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=${GOVERSION-go1.24.0} # Go 版本设置
export GO_INSTALL_DIR=$HOME/go # Go 安装目录
export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
export GOPATH=$HOME/golang # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 添加 PATH 路径
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export GOPRIVATE=
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
4. 测试是否安装成功。
如果执行 go version
命令后可以成功输出 Go 的版本信息,则说明 Go 编译环境已成功安装。具体命令如下:
$ bash # 配置 $HOME/.bashrc 后,需要执行 bash 命令将配置加载到当前 Shell
$ go version
go version go1.24.0 linux/amd64
步骤 2: 安装和配置 MariaDB 数据库
提示:如果你已经安装和配置 MariaDB 数据库,可跳过这一步。
本课程在 master 分支下提供了一个名为 configs/fg-apiserver.yaml 的文件,其中保存了数据库初始化的 SQL 语句。
在生产环境中,fastgo 项目需要使用 MariaDB 数据库来存储数据,因此需要先安装 MariaDB 数据库。安装和配置 MariaDB 的具体步骤如下。
1. 安装 MariaDB 服务端和 MariaDB 客户端
安装命令如下:
$ sudo apt install -y mariadb-server mariadb-client
2. 启动 MariaDB,并设置开机启动
启动命令如下:
$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
3. 设置 root 初始密码
初始化命令如下:
$ sudo mysqladmin -uroot password 'fastgo1234'
提示: 执行 mysqladmin 命令时,必须具有 root 权限,否则可能会出现错误:mysqladmin: connect to server at ‘localhost’ failed。
步骤 3:初始化 fastgo 数据库
如果你使用之前安装的 MySQL 数据库,而非本课程安装的 MySQL。那么课程中访问数据库的地址、用户名和密码,需要你自行适配。
1. 登录数据库并创建 fastgo
用户
创建命令如下:
$ mysql -h127.0.0.1 -P3306 -uroot -p'fastgo1234'
> grant all on fastgo.* TO fastgo@127.0.0.1 identified by 'fastgo1234';
> flush privileges;
> exit;
2. 创建 fastgo
数据库
使用 fastgo
用户登录 MariaDB,并创建 fastgo
数据库,创建命令如下:
$ mkdir -p $HOME/golang/src/github.com/onexstack/
$ cd $HOME/golang/src/github.com/onexstack/
$ git clone https://github.com/onexstack/fastgo
$ cd $HOME/golang/src/github.com/onexstack/fastgo
$ mysql -h127.0.0.1 -P3306 -u fastgo -p'fastgo1234'
> source configs/fastgo.sql;
> use fastgo;
Database changed
> show tables;
+--------------------+
| Tables_in_fastgo |
+--------------------+
| post |
| user |
+--------------------+
3 rows in set (0.000 sec)
步骤 4: 安装和配置 fastgo 项目
安装和配置 fastgo 项目步骤如下。
1. 在配置文件中添加数据库配置
fastgo 项目启动需要连接数据库,所以需要在配置文件 configs/fg-apiserver.yaml 中配置数据库的 IP、端口、用户名、密码和数据库名信息。configs/fg-apiserver.yaml 配置文件内容如下:
# 通用配置
## JWT 签发密钥
jwt-key: Rtg8BPKNEf2mB4mgvKONGPZZQSaJWNLijxR42qRgq0iBb5
# JWT Token 过期时间
expiration: 1000h# MySQL 数据库相关配置
mysql:# MySQL 机器 IP 和端口,默认 127.0.0.1:3306addr: 127.0.0.1:3306# MySQL 用户名(建议授权最小权限集)username: fastgo# MySQL 用户密码password: fastgo1234# fastgo 系统所用的数据库名database: fastgo# MySQL 最大空闲连接数,默认 100max-idle-connections: 100# MySQL 最大打开的连接数,默认 100max-open-connections: 100# 空闲连接最大存活时间,默认 10smax-connection-life-time: 10slog:format: textlevel: infooutput: stdout
提示:如果你使用之前创建的数据库,则需要适配
mysql.addr
、mysql.username
、mysql.password
配置项。
2. 启动 fg-apiserver 组件
执行以下命令编译并启动 fg-apiserver 组件:
$ cd $HOME/golang/src/github.com/onexstack/fastgo
$ ./build.sh
$ _output/fg-apiserver -c configs/fg-apiserver.yaml
...
time=2025-03-10T19:24:23.440+08:00 level=INFO msg="Start to listening the incoming requests on http address" addr=0.0.0.0:6666
启动的 API 服务器监听地址为:0.0.0.0:6666
。
3. 测试 fg-apiserver 组件功能是否正常
打开一个新的 Linux 终端,执行以下命令测试 fg-apiserver 中的 API 接口是否正常工作:
$ ./scripts/test.sh
执行结果如下图所示:
可以看到,fg-apiserver 中的接口,都测试通过。