在VS代码中,您可以使用php可执行文件验证php。但有没有办法在WSL上安装php?
答案 0 :(得分:3)
另一个答案对我来说也不起作用:经过一些工作,我想出了这两个脚本:
这个名为php.bat
,我将其放在C:\wsl-tools\
:
@echo OFF
setlocal ENABLEDELAYEDEXPANSION
rem Collect the arguments and replace:
rem '\' with '/'
rem 'c:' with 'mnt/c'
rem '"' with '\"'
set v_params=%*
set v_params=%v_params:\=/%
set v_params=%v_params:C:=/mnt/c%
set v_params=%v_params%
set v_params=%v_params:"=\"%
rem Call the windows-php inside WSL.
rem windows-php is just a script which passes the arguments onto
rem the original php executable and converts its output from UNIX
rem syntax to Windows syntax.
C:\Windows\sysnative\bash.exe -l -c "windows-php %v_params%"
这个叫做windows-php,放在WSL路径的某个地方(我选择了/usr/local/bin
)。
# Pass all the arguments to PHP.
output=$(php "$@")
# Perform UNIX->WINDOWS syntax replacements.
output="${output//$'\n'/$'\r'$'\n'}"
output="${output//\/mnt\/c/C:}"
output="${output//\//\\}"
# Echo corrected output.
echo $output
设置"php.validate.executablePath": "c:\\wsl-tools\\php.bat"
对我有用。
注意强>:
您可能需要关注this issue和this pull request,因为看起来这个问题将在下一个版本中正式解决。
答案 1 :(得分:2)
对我有用的东西
创建php.bat文件:
@echo off
set v_params=%*
set v_params=%v_params:\=/%
set v_params=%v_params:c:=/mnt/c%
set v_params=%v_params:"=\"%
@bash -c "php %v_params%"
将其放入C:\ WSL-Tools \ php.bat
然后,在VScode设置中(Ctrl +逗号):
"php.validate.executablePath": "C:\\WSL-Tools\\php.bat"
它有效。
答案 2 :(得分:1)
这可以使用旧的学校批处理文件。
php.bat
@echo off
c:\windows\sysnative\bash.exe -c "php %*"`
setting.json
"php.validate.executablePath": "c:\\PATH_TO\\php.bat"