WSL"完美"安装 LNMP 环境(宝塔面板)
优点
简单:Windows 自带功能,而且不需要设置网络映射,自动进行了硬盘挂载,真正实现了 Windows 下编辑 Linux 下运行的目的。同时也能解决不少 PHP 扩展在 Windows 下编译困难的问题。
步骤
安装 Ubuntu
- 在开启或关闭 Windows 功能那勾选:适用于 Linux 系统的 Windows 子系统
- 应用商店搜索 Ubuntu 点击获取并安装
- 启动安装后的 Ubuntu 系统并按照提示设置用户名密码
关闭杀毒软件的“实时保护”功能
这一步很重要,因为如果不关闭会导致磁盘 IO 下降从而导致编译速度很慢
安装宝塔面板
选择 Ubuntu 版本正常安装就行,5.9 和 6.0 版本都测试过,安装过程没有问题。
配置宝塔面板
常规配置就不再提,主要是把 Web 根目录,Web 备份目录,以及数据库的数据目录修改为 Windows 系统下的相应目录以方便进行编辑和备份。
开始填坑(重点)
-
Linux 的子系统是不支持开机启动脚本的,所以需要利用 vbs 脚本设置好开机自动运行宝塔以及相关的服务
-
部分页面打开非常慢,修复办法: 打开 nginx 配置文件,在 http 区段添加如下代码然后重启 Nginx 服务( 详细解释)
fastcgi_buffering off; -
杀毒软件实时保护功能导致的页面缓慢不流畅
完成上面这些操作以后 LNMP 各项功能已经能够正常使用,但是页面仍然会有卡顿感,原因还是上面提到的实时保护功能会影响到效率(详细解释)。解决办法是把常用进程添加到杀毒软件的例外清单里面,可用下面的 ps1 脚本完成(记得替换自己的用户名以及 package 名)。
$win_user = "pc_user" $linux_user = "linux_user" $package = "CanonicalGroupLimited.UbuntuonWindows_acdefkp1fndgsc" $base_path = "C:\Users\" + $win_user + "\AppData\Local\Packages\" + $package + "\LocalState\rootfs" $dirs = @("\bin", "\sbin", "\usr\bin", "\usr\sbin", "\www\server") $dirs | ForEach { Add-MpPreference -ExclusionProcess ($base_path + $_ + "\*") } Add-MpPreference -ExclusionPath $base_path
其他
差不多断断续续的用了整个周末的时间,才算把这些坑填完了,来回重启了不下 10 次。什么都弄好以后突然觉得:既然环境都弄好了,那就不用着急写代码了,先写个总结吧(手动狗头)。