使用Docker时VSCode的Devsense PHP扩展无法识别自定义PHP可执行文件
解决Devsense PHP扩展无法识别Docker容器内自定义PHP的问题
1. 确保自定义PHP脚本具备可执行权限
你的./docker/php/bin/php脚本需要拥有执行权限,否则扩展无法正常调用它:
chmod +x ./docker/php/bin/php
执行完成后手动测试脚本有效性,确认能返回容器内的PHP版本信息:
./docker/php/bin/php -v
2. 修正VSCode配置,指定默认PHP版本
你仅注册了自定义PHP,但未将其设置为扩展默认使用的版本,这是扩展仍调用系统PHP的核心原因。在VSCode的settings.json中补充配置:
"php.executables": { "my/sail-php8.2": "./docker/php/bin/php" }, "php.defaultVersion": "my/sail-php8.2"
注意php.defaultVersion的值必须和php.executables中定义的ID完全一致(即my/sail-php8.2)。
3. 验证配置生效
- 重启VSCode或通过命令面板执行
Developer: Reload Window重载窗口 - 查看扩展启动日志,若显示类似以下内容,说明自定义PHP已被正确识别:
PHP extension started. Found PHP, version: [容器内的PHP版本号], Xdebug: [是否加载状态]
4. 确认PHPUnit调用正常
配置生效后,Devsense扩展会自动使用指定的自定义PHP运行PHPUnit测试,实际执行的命令会变为:
./docker/php/bin/php -d display_errors=on /home/erstevn/Code/pilihjurusan/api/vendor/bin/phpunit --teamcity
进而间接调用Docker容器内的PHP完成测试任务。
内容的提问来源于stack exchange,提问作者Azvya Erstevan
相关产品推荐
相关产品推荐

