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
运行完了之后
应该是这个样子, 让我们把电脑重启下吧
更新到wsl2
更新到wsl2 条件蛮多的,我们先看看自己的条件满足吧,如果满足不了很遗憾,你还要更新下系统才能继续
运行 Windows 10(已更新到版本 1903 或更高版本,对于 x64 系统则是内部版本 18362 或更高版本)。
- 如果你在使用 Windows 10 版本 1903 或 1909,请确保你的次要版本号至少为 1049。 请参阅此处的完整疑难解答说明
运行 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
运行完成后大概是这个样子
然后让我们重启电脑以升级到wsl2
设置默认的wsl 版本
让我们继续以管理员身份打开 PowerShell 并运行:
wsl --set-default-version 2
稍等一会就将wsl2 设置为默认版本了(ps:如果 wsl –set-default-version 结果为无效命令,请输入 wsl –help。 如果 –set-default-version 未列出,则表示你的 OS 不支持它,你需要更新到版本 1903(内部版本 18362)或更高版本。 更新下系统试试吧)
安装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)
启动之后直接访问面板应该就可以了
在面板中设置安装的软件 等待一会 环境搭建完成
在编辑器打开
phpstrom 新版本中 打开命令显示的文件菜单 中会有 wsl2文件夹了 这时候直接打开就可以了直接使用了
遇到的问题
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
设置计划任务
控制面板中打开计划任务,创建新的计划任务
设置触发时间:
设置触发 命令
然后重启电脑试下吧
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 协议》,转载必须注明作者和本文链接
我的开发环境都是手动搭建的,期间费了好大的劲 :joy:
@柴星星 我太懒了 不想在上面浪费时间 :grin:
尝试过非常不错,我这机子硬盘不够用,忍痛卸载。😂
有空了回去试下 :grin:
ltsc 哭晕在厕所
:joy:跟安卓模拟器不兼容 。就没使用了。。
@bing 这个是硬伤应该没解了
上次装wsl把我电脑弄的好乱,C盘满了,而且虚拟机也开不开机了,搞得我重装系统了。以后再也不敢用WSL了。 :sob:
坐等GUI,,,现在还是用WSL1吧,,,
用laradock搭建环境不是更快,wsl2的文件i/o慢的问题解决了没
@arukas 不共享文件的话io 问题几乎没啥大问题的
@快乐壮 慢了吧,docker的话可以到30ms以下
@arukas 看个人吧 我感觉 这个200ms 和30ms 自己开发的话感知应该不大 :joy:
刚从Hyper-V+DockerDesktop 转为 WSL2+DockerDesktop 原本用Postman访问API都是 毫秒级别, 现在要5-15秒,不知道还能不能抢救一下。
WSL2的正确使用方式应该搭配vscode remote开发。共享文件贼慢
官方文档上注明了尽量不要共享文件
代码不共享。放wsl的目录了 。phpstorm切换窗口回去就会index索引。有办法吗 。安全防护中心那已经被火绒接管了。应该是不会出现扫描文件的权限问题