购买一个云服务器
目前国内有多家云服务器厂商阿里云、腾讯云、华为云、Ucloud等等,这里我选择的是一台轻量应用服务器,轻量级应用服务器类似于一台云电脑,可以安装各种操作系统,而且只需要操作官方的控制台,选择系统云服务器就会自动安装系统,对于我这种小白来说还是非常友好的,在这里以Linux操作系统为样例。
安装Golang环境
1. dnf 安装
可以直接通过如下命令安装系统提供的 golang 包
dnf install -y golang
安装完成后可通过如下命令确认安装版本
go version
输出结果: go version go1.19 linux/amd64
2. 自定义安装
如果想自定义安装,可以参考如下步骤使用官网提供的二进制文件
1 下载官方二进制,本例使用的是与 上一节相同的版本,也可以按需选择
wget https://go.dev/dl/go1.19.linux-amd64.tar.gz
sha256sum go1.19.linux-amd64.tar.gz
2 提取下载的 tarball 文件到自定义目录:
mkdir -p /usr/local/my_go/
tar -C /usr/local/my_go/ -xzf go1.19.linux-amd64.tar.gz
3 添加到 PATH
环境变量中
echo "export PATH=$PATH:/usr/local/my_go/go/bin" >> ~/.bashrc
source ~/.bashrc
4 验证 Go 语言是否安装成功
go version
go version go1.19 linux/amd64
Go 使用
Go 程序可以直接通过 go run
命令运行,如下demo所示:
vim hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello, OpenCloudOS!")
}
可以直接运行此代码
go run hello.go
Hello, OpenCloudOS!
导入项目
我采用的使在本地windows系统上编写测试好项目代码之后直接将项目文件包导入linux,大多数云服务器都可以直接拖拽传输,不行的话也可以通过Xshell等工具远程连接linux后上传,或者使用git克隆项目,这样做的好处是不用打包,直接在linux上运行项目,操作比较方便简单。
安装Mysql
1.安装源
rpm -ivh
2.安装MySQL 服务器
尝试运行:yum -y install mysql-community-server
如果报错 Unable to find a match: mysql-community-server
运行:yum module disable mysql
再执行:yum -y install mysql-community-server
等待下载,出现y/n 填写y即可
3.提示成功启动mysql
systemctl start mysqld
4.登录和修改密码
我们安装的时候,并没有设置初始密码,所以 mysql 在第一次启动的时候,会自动初始化一个密码,通过以下这行代码,我们可以查看 mysql 自动初始化的密码:
# 第一次启动后,可以查看mysql初始化密码
grep 'temporary password' /var/log/mysqld.log
输出(root@localhost: 后面的是密码):
2023-04-21T06:03:27.071550Z 6 [Note] [MY-010454] [Server] A temporary password
is generated for root@localhost: r2to%yZ%a)%s
登录
# 登录mysql,一定要注意:-p和'密码'之间是没有空格的
mysql -u root -p'r2to%yZ%a)%s'
修改 root 密码
修改密码部分我参照的这位大佬的文章,写的非常好,建议大家直接看
CentOS / Linux 安装MySQL
利用nohup让项目后台运行
当我们运行一个go web项目时,如果关闭连接云服务器上运行的go项目也就停止了,这种情况下,如果不小心遇到死机,断电之类的情况服务器就会断掉,这里只提供一种解决方法,采用nohup后台运行,即使断开连接,项目也会继续运行。
编译项目文件
go build test.go
编译项目生成可执行文件.exe
指定输出文件名
go build -o custom_name
编译输出二进制文件
修改可执行权限
chmod 777 custom_name
不改变权限容易报错
程序后台运行
nohup ./custom_name &
运行后是看不到程序进程的
关闭程序
通过如下方法可以关闭进程
- 查询进程号
ps aux|grep custom_name
- 关闭进程
kill 进程编号
开放端口供用户访问
打开自己的云服务器控制台,在防火墙一栏添加规则,选择自己要开放的端口号即可,每种云服务器的操作不一样,这里就不过多赘述了,可以参考官方文档,开放后用户就可以通过
http://公网ip:端口号
访问服务器了
域名解析
域名解析需要购买域名并且需要DNS解析器来访问服务器ip,厂商一般会提供部分免费的DNS解析器,可以在自己的云服务器厂商购买域名,根据厂商备案方法进行域名备案,否则是无法解析的