Linux服务器Golang环境搭建指南

Linux服务器Golang环境搭建指南 这些信息并非专门针对Go语言,但在为你的Go应用程序设置云服务器时应该会有所帮助。我已经多次经历这个过程,并希望有一套全面的说明。我还没有找到一个循序渐进的指南。它专门针对DigitalOcean,但大多数步骤应该适用于其他云托管公司。

服务器设置步骤

2 回复

这个链接似乎完全不适用于Go,它只涉及基本的Linux术语。

对于想在Linux上托管Go应用的新手来说,这个链接更有用。

更多关于Linux服务器Golang环境搭建指南的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


以下是在Linux服务器上搭建Golang环境的专业步骤,适用于大多数云服务器环境(如DigitalOcean、AWS、阿里云等):

1. 更新系统并安装基础工具

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git build-essential

2. 下载并安装Go

# 下载最新稳定版Go(请访问官网获取最新版本号)
GO_VERSION="1.21.0"
wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz

# 解压到/usr/local目录
sudo tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz

# 清理安装包
rm go${GO_VERSION}.linux-amd64.tar.gz

3. 配置环境变量

# 编辑bash配置文件
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc

# 立即生效
source ~/.bashrc

4. 验证安装

# 检查Go版本
go version

# 测试环境配置
go env

5. 创建工作目录结构

# 创建标准Go工作目录
mkdir -p ~/go/{src,bin,pkg}

# 测试简单的Go程序
cat > ~/go/src/hello/hello.go << 'EOF'
package main

import "fmt"

func main() {
    fmt.Println("Go环境安装成功!")
}
EOF

# 编译并运行
cd ~/go/src/hello
go run hello.go

6. 配置Go模块代理(加速下载)

# 设置国内镜像(如在中国大陆)
go env -w GOPROXY=https://goproxy.cn,direct

# 或使用官方代理
go env -w GOPROXY=https://proxy.golang.org,direct

7. 安装常用开发工具

# 安装代码格式化工具
go install golang.org/x/tools/cmd/goimports@latest

# 安装静态分析工具
go install honnef.co/go/tools/cmd/staticcheck@latest

# 安装热重载工具(用于开发)
go install github.com/cosmtrek/air@latest

8. 创建系统服务示例(部署Go应用)

# 创建示例应用
cat > /etc/systemd/system/golang-app.service << 'EOF'
[Unit]
Description=Go Application Service
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/go-app
ExecStart=/var/www/go-app/main
Restart=always

[Install]
WantedBy=multi-user.target
EOF

9. 防火墙配置(如需)

# 开放Go应用常用端口
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS
sudo ufw allow 8080/tcp  # Go调试端口
sudo ufw enable

10. 验证完整环境

# 创建测试模块
mkdir -p /tmp/test-app && cd /tmp/test-app
go mod init test-app

# 编写测试文件
cat > main.go << 'EOF'
package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Go服务器运行正常!")
}

func main() {
    http.HandleFunc("/", handler)
    fmt.Println("服务器启动在 :8080")
    http.ListenAndServe(":8080", nil)
}
EOF

# 运行测试服务器
go run main.go &
curl http://localhost:8080

这个配置提供了完整的Go开发和生产环境,包括版本管理、依赖代理、开发工具和部署配置。

回到顶部