下面是针对“golang项目如何上线部署到Linux服务器”的详细攻略。
1. 安装 Linux 环境
首先,我们需要安装一台 Linux 环境的服务器。可以选择 CentOS、Ubuntu 等常用 Linux 发行版本。
2. 安装 Golang 环境
在 Linux 环境下,可以通过包管理器进行 Golang 的安装,也可以到官网下载二进制包进行手动安装。下面是常见 Linux 发行版本下的安装方式:
CentOS 安装
sudo yum install golang
Ubuntu 安装
sudo apt install golang
3. 编写 Golang 代码
在本地开发环境中编写好 Golang 代码,并进行测试调试。
4. 将 Golang 代码部署到服务器
可以通过以下两种方式将 Golang 代码部署到服务器中:
方式一:SCP 命令传送文件
在本地终端使用 SCP 命令将 Golang 代码传送到服务器的目标文件夹中。
scp ~/Desktop/myapp user@192.168.1.100:/home/user/myapp
其中,~/Desktop/myapp 是本地 Golang 代码所在的文件夹,user 是服务器用户名,192.168.1.100 是服务器 IP 地址,/home/user/myapp 是服务器上的目标文件夹。
方式二:Git 克隆仓库
在服务器上通过 Git 克隆代码仓库,将代码拉取到服务器中。
git clone https://github.com/username/repo.git
5. 编写启动脚本
在服务器中编写启动脚本,以便可以通过脚本启动 Golang 服务。以下是示例代码:
#!/bin/sh
cd /home/user/myapp
nohup ./myapp > /dev/null 2>&1 &
echo "myapp server started"
其中,/home/user/myapp 是服务器中的目标文件夹,myapp 是 Golang 程序的可执行文件名。
6. 启动 Golang 服务
执行启动脚本,启动 Golang 服务。
./start.sh
通过以上步骤,就可以将本地开发的 Golang 代码部署到 Linux 服务器中,并在服务器中启动服务。
示例说明:
- 假设我们在本地环境中编写了一个简单的 Golang Web 服务,代码如下:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello World!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
- 我们在 CentOS 环境下安装了 Golang,并将代码文件夹通过 SCP 命令传送到服务器中的 /home/user/myapp 目录下。
scp ~/Desktop/myapp user@192.168.1.100:/home/user/myapp
- 在服务器中编写了启动脚本,内容如下:
#!/bin/sh
cd /home/user/myapp
nohup ./myapp > /dev/null 2>&1 &
echo "myapp server started"
- 最后执行启动脚本,启动 Golang 服务。
./start.sh
这样就可以在服务器中启动 Golang Web 服务并访问了。