layout: post

GoFrame开发部署

subtitle: GoFrame开发部署 date: 2020-06-23 author: BY jcleng header-img: img/post-bg-kuaidi.jpg catalog: true tags: - golang - GoFrame

GoFrame开发部署

设置环境

# GO111MODULE设为开
# git shell,全局生效请配置到文件变量环境
export GO111MODULE=on

# 设置代理
export GOPROXY=https://goproxy.cn

依赖安装

# 在gopath的src创建一个项目文件夹 gfdemo 并进入
# 初始化 go.mod 文件,使用包管理工具,就不需要手动 go get xxx 了
go mod init

# 编辑 go.mod 文件, gfdemo 是项目文件名称
  module gfdemo
  go 1.12
  require github.com/gogf/gf v1.6.13

# 创建 main.go 文件
package main

import (
    "github.com/gogf/gf/frame/g"
    "github.com/gogf/gf/net/ghttp"
)

func main() {
    s := g.Server()
    s.BindHandler("/", func(r *ghttp.Request) {
        r.Response.Write("哈喽世界!")
    })
    s.Run()
}


# 下载依赖或者直接运行的时候也会下载依赖
go mod download
go run main.go

vscode编辑配置

NUhjLF.gif

# 安装 golang 扩展
# 然后 运行命令 GO: Install/Update Tools 安装命令和语言服务器等
# 重启就可以开发了

web项目使用 gf-cli 构建工具链构建项目框架gf-cli

# 进入gopath
cd gopath/src
# 创建项目目录
mkdir studygf
# 进入项目目录
cd studygf
# 初始化项目
gf init
# 项目名称,默认是 gf-app,文件夹名称和项目名称非一定一致
gf init firstgf
# 跑起来
gf run main.go

# 注意,如果还是在环境配置阶段,修改了goroot或gopath(运行项目提示...missing go.sum entry for module...),在项目里面运行:
go mod tidy

其他

  • gf 出现 too many open files

# 加到 10240
ulimit -n 10240
  godemo git:(master) go env
GO111MODULE="on"
GOARCH="arm64"
GOBIN=""
GOCACHE="/home/jcleng/.cache/go-build"
GOENV="/home/jcleng/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/jcleng/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/jcleng/go"
GOPRIVATE=""
GOPROXY="https://goproxy.cn,direct"
GOROOT="/nix/store/njxvw646vchy15wn0ckkjnvnc9x10ga9-go-1.17.1/share/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/nix/store/njxvw646vchy15wn0ckkjnvnc9x10ga9-go-1.17.1/share/go/pkg/tool/linux_arm64"
GOVCS=""
GOVERSION="go1.17.1"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/jcleng/dev/godemo/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build948556880=/tmp/go-build -gno-record-gcc-switches"