- 查看windows系统的版本号
windows 系统到 win10 v2004 的内部版本 19041 或更高版本, 可以使用win10自带的WSL1或WSL2. 1和2的区别:
打开powershell 管理员身份运行
输入 winver
,版本如果达不到。如果不是,到微软官网更新系统。win10更新
2 此电脑 --点击属性--控制面板\程序\程序和功能 勾选之后 保存
然后重启电脑
3 确保在BIOS中启用虚拟化。可根据电脑厂家型号查找进入bios方法(开机时狂按某键),以及如何设置。 ctrl+alt+del 查看是否虚拟机化
4 开始执行如下命令
//启用“适用于 Linux 的 Windows 子系统”可选功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
//启用虚拟机平台可选功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
//设置WSL2为默认版本
wsl --set-default-version 2
//设置默认的WSL系统Linux版本
然后重启电脑
开机后执行 然后提示 我们开始安装wsl(windows system Linux)子系统的内核
,输入 wsl --set-default-version 2
,如果出现错误代码,则到WSL官网下载linux内核并安装,然后重复一次此步骤。(wsl --help
为检测WSL是否安装成功的指令) WSL
Error: 0x800701bc WSL 2 ?????????????????? https://aka.ms/wsl2kernel 出现类似的报错 就是Linux的内核忘记安装 需要安装Linux 的内核系统
完成后到微软商店下载分发版linux。微软商店,ubuntu默认下载20.04版本
设置用户名 密码
5输入 sudo apt install net-tools
,下载工具。
在powershelll中输入wsl --list --verbose
,检查WSL用的linux分发版和WSL的版本。
wsl -l -v 查看安装wsl的版本
//查看安装的wsl版本列表
wsl -l -v
//配置某个linux发行版为版本2
wsl --set-version (distro name) 2
//配置wsl默认版本为版本2
wsl --set-default-version 2
//以某个特定用户运行某一个发行版
wsl -u <Username>
//注销(卸载)某个发行版以重新安装
wsl --unregister <DistributionName>
//为某个发行版配置默认用户
<DistributionName> config --default-user <Username>
//停止所有正在运行的WSL子系统
wsl --shutdown
7 安装docker
Install Docker Desktop on Windows | Docker Documentation(后续的补充 这个是最新的版本 可以直接的安装 )
下载Docker Desktop Edge 2.1.6.0或更高版本。
请遵循通常的Docker Desktop安装说明来安装Docker Desktop 。 一路安装即可
然后重启电脑
安装完成后可以更新更高版本 我这里更新到了4.6
8开始设置wsl 与docker的映射关系
开始愉快的docker之旅吧 更多学习参考
Docker简介以及Docker历史Docker核心概念、安装、端口映射及常用操作命令(细到令人发指)_小洋人最happy的博客-CSDN博客
Docker常用命令_chengxuyuanyonghu的博客-CSDN博客_查看docker版本命令
9 安装PHP 目前最前沿的框架 hyperf
https://hyperf.wiki/2.2/#/zh-cn/quick-start/install
开始安装 官网示例
docker run --name hyperf \
-v /workspace/skeleton:/data/project \
-p 9501:9501 -it \
--privileged -u root \
--entrypoint /bin/sh \
hyperf/hyperf:7.4-alpine-v3.11-swoole
我们自己windows下面 这样安装
设置阿里镜像源重启docker
"registry-mirrors": [
"https://xxxxx.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"
],
9.1 powershell 拉取镜像: docker pull hyperf/hyperf:7.4-alpine-v3.11-swoole
9.2 启动镜像
docker run --name hyperfs -v D:/workspace/skeleton:/data/project -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:7.4-alpine-v3.11-swoole
9.3 开启hyperf项目 愉快的php协程框架
设置阿里composer 速度更快 下载composer包
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
cd /data/project
cd hyperf-skeleton php bin/hyperf.php start
打开浏览器 成功访问
10 安装Go
10.1 Downloads - The Go Programming Language 去下载
下载完成后 默认安装c盘 或者自定义安装目录后面会用到
安装完成后开始设置 GOROOT GOPATTH 注意在系统的环境变量里面设置 我的电脑-》属性 环境变量设置
在d盘 设置3个文件夹 src 放项目 pkg 放第三方依赖包 bin编译二进制文件
安装成功后 查看默认设置
我们开始设置我们自己的
注意上面如果用户环境变量里面被系统里面默认设置了GROOT 删除
开启中国最先开始使用go语言生产项目的公司 七牛云 代理 目前中国声称最靠谱的代理 下载go项目 依赖包贼快
开启 GO111MODULE
GO111MODULE=off
无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。GO111MODULE=on
模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据go.mod
下载依赖。GO111MODULE=auto
在$GOPATH/src
外面且根目录有go.mod
文件时,开启模块支
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
ok 安装成功 写个hello world src 文件夹下建个hello.go
在src下面见一个hello文件夹 然后 写个hello.go文件
执行go mod init hello 初始化当前的文件夹 安装模块依赖 类似于php的composer 此时在下图发现我们的新建的 pkg文件夹下面多了mod 以及cache
go install 会把刚刚的hello.go文件生成二进制文件放在bin 下面
go build 会生成二进制文件在当前的文件夹下面
执行hello.exe 会得到 go run hello.go 相同的结果
11 好的 我们开始安装最后一部 安装star星数最多的go 语言写的web框架
11.1 新建一个文件夹放gin框架 我们取名jonpgo_gin
11.2 开始初始化go.mod文件
11.3 下载安装依赖包 go get -u github.com/gin-gonic/gin
11.4 新建一个main.go文件
切换git 命令
curl https://raw.githubusercontent.com/gin-gonic/examples/master/basic/main.go > main.go 执行上述命令快速生成
11.5 下面的代码 放到里面去
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
// 通过字典模拟 DB
var db = make(map[string]string)
func setupRouter() *gin.Engine {
// 初始化 Gin 框架默认实例,该实例包含了路由、中间件以及配置信息
r := gin.Default()
// Ping 测试路由
r.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
// 获取用户数据路由
r.GET("/user/:name", func(c *gin.Context) {
user := c.Params.ByName("name")
value, ok := db[user]
if ok {
c.JSON(http.StatusOK, gin.H{"user": user, "value": value})
} else {
c.JSON(http.StatusOK, gin.H{"user": user, "status": "no value"})
}
})
// 需要 HTTP 基本授权认证的子路由群组设置
authorized := r.Group("/", gin.BasicAuth(gin.Accounts{
"foo": "bar", // 用户名:foo 密码:bar
"manu": "123", // 用户名:manu 密码:123
}))
// 保存用户信息路由
authorized.POST("admin", func(c *gin.Context) {
user := c.MustGet(gin.AuthUserKey).(string)
// 解析并验证 JSON 格式请求数据
var json struct {
Value string `json:"value" binding:"required"`
}
if c.Bind(&json) == nil {
db[user] = json.Value
c.JSON(http.StatusOK, gin.H{"status": "ok"})
}
})
return r
}
func main() {
// 设置路由信息
r := setupRouter()
// 启动服务器并监听 8080 端口
r.Run(":8080")
}
11.4 开始启动项目 访问路由 go run main.go
Gin框架安装 测试完成 更多的go gin 知识大家慢慢学习 谢谢大家的观帖 也写了不少 点个赞吧