安装
- 控制面板->启用或关闭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 节点添加:
1 | fastcgi_buffering off; |
然后重启nginx即可。