WSL2是Windows下运行Laravel/Symfony等PHP框架最接近生产环境的方式,但简单WordPress开发用XAMPP更高效;需正确配置PHP路径、避免Windows文件系统混用,并遵循Linux规则。

PHP 在 Windows 上到底该用 WSL2 还是原生环境?
直接说结论:如果你要跑 Laravel、Symfony 或需要 Composer 依赖频繁安装/更新,WSL2 是当前 Windows 下最接近生产环境的 PHP 开发方式;但如果你只是改几个 WordPress 插件或调试简单脚本,用 XAMPP 或 Laragon 反而更快——WSL2 不是万能加速器,它是为「类 Linux 工作流」服务的。
WSL2 安装后 PHP 运行不起来?检查这三步
常见现象是 php -v 报错 command not found,或者 php --ini 显示配置路径混乱。根本原因不是没装 PHP,而是 WSL2 默认用的是 Ubuntu 的 apt 源,它装的是系统包管理器维护的 PHP(比如 php8.1),而非你习惯的 Windows 那套一键包。
- 先确认发行版:运行
wsl -l -v,确保状态是Running且版本是2 - 更新源并装 PHP:在 WSL2 终端里执行
sudo apt update && sudo apt install php-cli php-mbstring php-xml php-zip php-curl(别漏掉扩展,Laravel 启动就卡在mbstring) - 验证路径:运行
which php,正常应返回/usr/bin/php;如果返回空,说明没装成功或 shell 缓存了旧 PATH,执行hash -r清缓存再试
VS Code 怎么连上 WSL2 的 PHP 环境?
很多人装了 Remote - WSL 插件却还是用不了 PHP Intelephense 或调试器,问题出在 VS Code 默认调用的是 Windows 的 php.exe,而不是 WSL2 里的 php。
- 打开命令面板(
Ctrl+Shift+P),搜Remote-WSL: New Window,确保你是在 WSL2 环境下打开的文件夹(地址栏显示WSL: Ubuntu) - 在 WSL2 窗口里按
Ctrl+Shift+P→Preferences: Open Settings (JSON),加这一行:"php.executablePath": "/usr/bin/php" - 调试时别用 Windows 的
launch.json模板;在 WSL2 窗口里新建项目,用PHP Debug插件自动生成配置,它会默认读取 WSL2 的php路径
Windows 和 WSL2 文件系统混用导致 Composer 报错
错误典型如 file_put_contents(./composer.lock): failed to open stream: Permission denied,或 laravel new 卡住不动。这不是权限设置问题,而是 Windows 文件系统(NTFS)挂载到 WSL2 后,inode 和权限模型不兼容。
- 绝对不要在
/mnt/c/Users/xxx/...下开发:这是 Windows 盘映射,性能差且 chmod/chown 失效 - 把项目放在 WSL2 原生路径,例如
~/projects/myapp,然后用 VS Code 的 Remote 打开这个路径 - Composer 全局配置要重设:运行
composer config -g home /home/$(whoami)/.composer,避免它试图写到/mnt/c下
WSL2 的 PHP 环境真正难的不是装,而是「忘记自己在 Linux 里」——所有路径、权限、符号链接、时区都要按 Linux 规则来,Windows 那套双击运行、右键管理员、盘符思维,得先清掉。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











