You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL Ubuntu中修改PHPUnit的PHP7.2路径解决执行错误问题

解决WSL Ubuntu中PHPUnit指向Windows PHP路径的错误

你遇到的问题根源很明确:你当前使用的是Windows版本的PHPUnit脚本,它的执行头(shebang)指向了Windows系统的PHP路径,还带着Windows特有的换行符(就是错误里的^M),导致WSL的Ubuntu环境无法正确解析。下面是一步步的修复方案:

步骤1:确认问题细节

先查看PHPUnit脚本的第一行,验证我们的判断:

head -n 1 /mnt/c/xampp/php/phpunit

你大概率会看到类似这样的输出:

#!/C:\xampp\php.\php.exe^M

这里的^M是Windows的回车符(CR),在Linux环境下会被当作文件名的一部分;同时这个路径是Windows的C盘路径,WSL完全找不到对应的文件。

步骤2:转换脚本换行符为Linux格式

首先要把脚本里的Windows换行符换成Linux兼容的格式,有两种方法可选:

  • 如果你已经安装了dos2unix工具(没装的话可以用sudo apt install dos2unix安装),直接运行:
    sudo dos2unix /mnt/c/xampp/php/phpunit
    
  • 不想额外安装工具的话,用sed命令替换掉回车符:
    sudo sed -i 's/\r$//' /mnt/c/xampp/php/phpunit
    

步骤3:修改PHPUnit的PHP路径指向WSL的PHP7.2

先确认WSL中PHP7.2二进制文件的具体路径,运行:

which php7.2

通常输出会是/usr/bin/php7.2(这是PHP CLI版本的默认路径)。接下来修改脚本的第一行执行头:

sudo sed -i '1c #!/usr/bin/php7.2' /mnt/c/xampp/php/phpunit

如果刚才which命令输出的是其他路径(比如/etc/php/7.2/cli/php),把上面命令里的路径换成对应的即可。

步骤4:确保脚本有执行权限

如果之前脚本没有执行权限,给它加上:

sudo chmod +x /mnt/c/xampp/php/phpunit

测试修复效果

现在运行PHPUnit验证一下:

phpunit --version

应该能正常输出版本信息,不再报路径错误了。

备选方案:直接用WSL PHP运行脚本

如果不想修改原脚本,每次运行时可以直接指定WSL的PHP来执行PHPUnit:

/usr/bin/php7.2 /mnt/c/xampp/php/phpunit

内容的提问来源于stack exchange,提问作者pmiranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:29:33