window系统下搭建 wsl2 开发环境

windows 环境下关于wsl2开发环境搭建的尝试

起始原因

偶然之间看到了phpstrom 更新了 (不得不感叹好猛啊!),然后看了下更新日志,发现好像支持wsl的( ps:英语不是很好只看了个大概),想自己尝试一波, 虽然以前也折腾过 wsl2下的docker 搭建 但是那io 速度真的是惨不忍睹啊. 这次准备直接项目文件在wsl中不io 共享了.

开始折腾

安装wsl

以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

运行完了之后

window系统下搭建 wsl2 开发环境
应该是这个样子, 让我们把电脑重启下吧

更新到wsl2

更新到wsl2 条件蛮多的,我们先看看自己的条件满足吧,如果满足不了很遗憾,你还要更新下系统才能继续:sob: :sob:

  • 运行 Windows 10(已更新到版本 1903 或更高版本,对于 x64 系统则是内部版本 18362 或更高版本)。

  • 运行 Windows 10(已更新到版本 2004 或更高版本,对于 ARM64 系统则是内部版本 19041)。

  • 请注意,如果使用的是 Windows 10 版本 1903 或 1909,将需要确保具有正确的向后移植,此处提供了相关说明。

  • 通过按 Windows 徽标键 + R,检查你的 Windows 版本,然后键入 winver,选择“确定”。 (或者在 Windows 命令提示符下输入 ver 命令)。 如果内部版本低于 18361,请更新到最新的 Windows 版本获取 Windows 更新助手

太多了懒得打了 直接复制了..
如果全部满足,恭喜我们可以开始下一步了,
让我们继续以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

运行完成后大概是这个样子

window系统下搭建 wsl2 开发环境(尝试阶段)
然后让我们重启电脑以升级到wsl2

设置默认的wsl 版本

让我们继续以管理员身份打开 PowerShell 并运行:

wsl --set-default-version 2

稍等一会就将wsl2 设置为默认版本了(ps:如果 wsl –set-default-version 结果为无效命令,请输入 wsl –help。 如果 –set-default-version 未列出,则表示你的 OS 不支持它,你需要更新到版本 1903(内部版本 18362)或更高版本。 更新下系统试试吧:tired_face:)

安装Linux

打开 Microsoft Store,并选择你偏好的 Linux 分发版。
下面是打开链接:
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- openSUSE Leap 15.1
- SUSE Linux Enterprise Server 12 SP5
- SUSE Linux Enterprise Server 15 SP1
- Kali Linux
- Debian GNU/Linux
- Fedora Remix for WSL
- Pengwin
- Pengwin Enterprise
- Alpine WSL
选择你想安装的Liunx 安装(泡杯枸杞等待会)
安装完了 我们打开刚刚安装的liunx 还需要在等待一会,让他初始化下,初始化完成了
输入我们默认登入的用户名和密码
在次检查下是否为wsl2版本

wsl -l -v

里面版本号是2 就代表着我们的wsl2环境已经到此结束了

php环境搭建

为了方便 我这里直接用了宝塔面板(懒癌没治了)
下面以ubuntu 示例

sudo wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

搭建完成之后会显示 内网的访问地址 直接访问就可以了(ps 但是我的电脑问题可能是安装完了之后必须重启电脑才能访问也不知道是啥原因,windows 重启后第一次打开wsl2 需要启动bt 命令 sudo bt start)
启动之后直接访问面板应该就可以了
在面板中设置安装的软件 等待一会 环境搭建完成:smirk:

在编辑器打开

phpstrom 新版本中 打开命令显示的文件菜单 中会有 wsl2文件夹了 这时候直接打开就可以了直接使用了 :smile:

遇到的问题

composer 安装完成后 global 全局安装 找不到命令

原因: wsl 中$PTAH 中没有绑定composer的路径
解决方法:
运行:

sudo vim /etc/profile

添加如下代码

export PATH="$PATH:$HOME/.config/composer/vendor/bin"

电脑重启后宝塔及内部软件没有启动

解决方法:
sudo vim /etc/init.wsl
添加如下内容:

#! /bin/sh
bt start
service nginx start
service mysqld start
service php-fpm-74 start
service redis reload
service nginx start

设置计划任务
控制面板中打开计划任务,创建新的计划任务
设置触发时间:

window系统下搭建 wsl2 开发环境(尝试阶段)

设置触发 命令

window系统下搭建 wsl2 开发环境(尝试阶段)

然后重启电脑试下吧:kissing_smiling_eyes:

WSL Ubuntu 20.04 LTS 修改默认登陆用户

ubuntu2004.exe config --default-user root

Ubuntu 18.04 LTS

ubuntu1804.exe config --default-user root

debian

debian.exe config --default-user root
本作品采用《CC 协议》,转载必须注明作者和本文链接
好好学习天天向上
快乐壮
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 20

我的开发环境都是手动搭建的,期间费了好大的劲 :joy:

3年前 评论
快乐壮

@柴星星 我太懒了 不想在上面浪费时间 :grin:

3年前 评论
月亮☪ 3年前
快乐壮 (作者) (楼主) 3年前

尝试过非常不错,我这机子硬盘不够用,忍痛卸载。😂

3年前 评论
天上白玉京

有空了回去试下 :grin:

3年前 评论

ltsc 哭晕在厕所

3年前 评论

:joy:跟安卓模拟器不兼容 。就没使用了。。

3年前 评论
paco 3年前
快乐壮

@bing 这个是硬伤应该没解了

3年前 评论

上次装wsl把我电脑弄的好乱,C盘满了,而且虚拟机也开不开机了,搞得我重装系统了。以后再也不敢用WSL了。 :sob:

3年前 评论

坐等GUI,,,现在还是用WSL1吧,,,

3年前 评论

用laradock搭建环境不是更快,wsl2的文件i/o慢的问题解决了没

3年前 评论
快乐壮

@arukas 不共享文件的话io 问题几乎没啥大问题的

file

3年前 评论

@快乐壮 慢了吧,docker的话可以到30ms以下

3年前 评论
快乐壮

@arukas 看个人吧 我感觉 这个200ms 和30ms 自己开发的话感知应该不大 :joy:

3年前 评论

刚从Hyper-V+DockerDesktop 转为 WSL2+DockerDesktop 原本用Postman访问API都是 毫秒级别, 现在要5-15秒,不知道还能不能抢救一下。

3年前 评论

WSL2的正确使用方式应该搭配vscode remote开发。共享文件贼慢

3年前 评论
快乐壮

官方文档上注明了尽量不要共享文件

3年前 评论

代码不共享。放wsl的目录了 。phpstorm切换窗口回去就会index索引。有办法吗 。安全防护中心那已经被火绒接管了。应该是不会出现扫描文件的权限问题

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!