什么是WSL2
WSL 2是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。
这一新的体系结构改变了这些 Linux 二进制文件与Windows 和计算机硬件进行交互的方式,但仍然提供与 WSL 1(当前广泛可用的版本)中相同的用户体验。
单个 Linux 分发版可以在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你可以并行运行 WSL 1 和 WSL 2 分发版。 WSL 2 使用全新的体系结构,该体系结构受益于运行真正的 Linux 内核。
安装WSL2
打开控制面板启用适用于Linux的Windows子系统和虚拟机平台
使用PowerShell或CMD设置WSL默认版本
wsl --set-default-version 2
安装Linux发行版
# 查看可安装的发行版
wsl --list --online
# 安装指定的Linux发行版
# wsl --install -d <Distribution Name>
wsl --install -d Ubuntu
# 进入Linux发行版
wsl
安装Docker Desktop
下载地址:https://docs.docker.com/desktop/install/windows-install/
安装好Docker Desktop后,可直接在安装的Linux发行版中使用Docker命令了
Windows安装Docker Desktop已自动安装好docker-compose
# 查看所有docker容器sudo docker ps-a
version: '1.0'
services:
? php74:
? ? image: registry.cn-hangzhou.aliyuncs.com/cqcqs/php74-fpm
? ? container_name: php74
? ? restart: always
? ? ports:
? ? ? - 9000:9000
? ? volumes:
? ? ? - ./:/var/www/html
? ? networks:
? ? ? net:
? ? ? ? ipv4_address: 172.18.0.11
? nginx:
? ? image: nginx
? ? container_name: nginx
? ? restart: always
? ? ports:
? ? ? - 80:80
? ? volumes:
? ? ? - ./:/var/www/html
? ? ? - ./nginx.conf:/etc/nginx/conf.d/default.conf
? ? working_dir: /var/www/html
? ? links:
? ? ? - php74
? ? networks:
? ? ? net:
? ? ? ? ipv4_address: 172.18.0.12
networks:
? net:
? ? driver: bridge
? ? ipam:
? ? ? driver: default
? ? ? config:
? ? ? ? - subnet: 172.18.0.0/24
在E:\www下新建nginx.confNginx配置文件
server {
? ? listen 80;
? ? root /var/www/html/public;
? ? error_log /var/log/nginx/error.log;
? ? add_header X-Frame-Options "SAMEORIGIN";
? ? add_header X-XSS-Protection "1; mode=block";
? ? add_header X-Content-Type-Options "nosniff";
? ? index index.html index.htm index.php;
? ? charset utf-8;
? ? location / {
? ? ? ? try_files $uri $uri/ /index.php?$query_string;
? ? }
? ? location = /favicon.ico { access_log off; log_not_found off; }
? ? location = /robots.txt? { access_log off; log_not_found off; }
? ? error_page 404 /index.php;
? ? location ~ \.php$ {
? ? ? ? fastcgi_pass php74:9000;
? ? ? ? fastcgi_index index.php;
? ? ? ? fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
? ? ? ? include fastcgi_params;
? ? }
? ? location ~ /\.(?!well-known).* {
? ? ? ? deny all;
? ? }
}
构建项目容器
docker-compose up-d
构建成功,浏览器访问http://127.0.0.1/
项目以空的Laravel为例,但细心的朋友可能会发现,响应速度特别的慢,大概在6s左右,这极大影响了我们的开发效率