0235 | ใช้ php บน WSL กับ VSCode
1) เปิด wsl ขึ้นมา สั่ง sudo vi /usr/local/bin/windows-php ใส่ข้อมูลตามนี้
# 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 |
2) สั่ง sudo chmod +x /usr/local/bin/windows-php
3) สร้างไฟล์ php.bat เก็บไว้ซักที่ในฝั่ง windows (สมมติ c:\apps\php.bat) ใส่ข้อมูลตามนี้
@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\system32\bash.exe -l -c "windows-php %v_params%" |
4) ใน vscode ตั้ง setting ตามนี้
"php.validate.executablePath": "C:\\apps\\php.bat" |
reference: https://github.com/Microsoft/vscode/issues/22391