在 CentOS 上部署 Golang(Go 语言) 一般分为 安装 Go 环境 和 部署 Go 项目 两部分。下面按常见场景一步一步说明(适用于 CentOS 7 / CentOS 8 / Rocky / Alma 同理)。
sudo rm -rf /usr/local/go
cd /usr/local
sudo wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
可到官网查看最新版本:https://go.dev/dl/
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
编辑:
sudo vi /etc/profile
在文件末尾添加:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
生效:
source /etc/profile
go version
输出类似:
go version go1.22.4 linux/amd64
sudo yum install golang -y
sudo dnf install golang -y
查看版本:
go version
⚠️ 仓库版本通常较老,不推荐生产环境使用。
mkdir -p ~/go-projects/hello
cd ~/go-projects/hello
go mod init hello
vi main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, CentOS Go!")
}
go run main.go
go build -o hello
生成:
./hello
nohup ./hello > app.log 2>&1 &
查看进程:
ps -ef | grep hello
/opt/go/hello
sudo vi /etc/systemd/system/hello.service
内容示例:
[Unit]
Description=Go Hello Service
After=network.target
[Service]
Type=simple
ExecStart=/opt/go/hello
WorkingDirectory=/opt/go
Restart=always
User=root
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start hello
sudo systemctl enable hello
查看状态:
sudo systemctl status hello
如果 Go 程序监听端口(如 8080):
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
/usr/local/go/bin 是否在 PATH配置国内代理:
go env -w GOPROXY=https://goproxy.cn,direct
wget go.tar.gz
tar -C /usr/local -xzf go.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
go build
./app
如果你愿意,可以告诉我:
我可以给你一套 完整生产级部署方案。