安装
- 控制面板->启用或关闭Windows功能->适用于Linux的Windows子系统,挑勾,安装
- 下载安装包 https://github.com/yuk7/CentWSL
- 解压到同一目录中,如
F:\CentOS7
- 运行
CentOS7.exe
配置
- 更新
yum -y update
- 安装软件
yum -y install wget zip unzip passwd openssl openssh-server openssh-clients lsof
环境
下载最新的hdltmp安装包,解压并安装
SSH配置
- 编辑
/etc/ssh/sshd_config
,修改或打开Port 22
UsePAM no
PermitRootLogin yes
PasswordAuthentication yes
- 创建公私密钥,输入命令后,直接按两次enter键确认就行了
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
- 开启服务
/usr/sbin/sshd -D &
开机启动(慎用)
Win+R
运行shell:startup
,打开启动文件夹- 创建文件,比如
CentOS7.vbs
- 用编辑器打开文件,写入命令,例:
Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d CentOS7 -u root /etc/init.d/nginx start"
ws.run "wsl -d CentOS7 -u root /etc/init.d/php-fpm start"
ws.run "wsl -d CentOS7 -u root /etc/init.d/mysql start"
ws.run "wsl -d CentOS7 -u root /usr/sbin/sshd -D &"
-d
后跟的是wsl名称,可在命令行中用wsl -l
命令查看
多wsl并存
将CentOS7.exe和rootfs.tar.gz拷贝到新目录中,并重命名CentOS7.exe,例CentOS7_2.exe,双击运行即可
关键服务
- LxssManager
- LxssManagerUser_xxxxx
WSL里Nginx+PHP,反映慢,卡住等问题
在wsl里搭建lnmp环境时,
访问简单的PHP 文件 (例如Hello world)没有问题,
但访问多数 PHP 文件卡死,
有的(例如phpinfo()),虽然可以加载出来但浏览器显示网页仍未加载完全或者巨慢。
原因
用 Unix Socket 方式连接 Nginx 和 PHP,然而,WSL 对 Unix Socket 的支持并不是那么完美
解决方法
在 nginx.conf 的 http 节点添加:
fastcgi_buffering off;
然后重启nginx即可。