GitHub Codespace中PHP8.2连SQL Server遇sqlsrv_connect未定义,求配置方案
解决GitHub Codespace中PHP8.2 + SqlSrv扩展缺失问题
方案一:使用预配置的Dev Container(推荐)
直接创建自定义开发容器配置,替换默认容器,一次配置永久生效:
- 在项目根目录创建
.devcontainer文件夹,新建以下两个文件:
Dockerfile
# 基于官方PHP8.2 CLI镜像 FROM php:8.2-cli # 安装ODBC驱动依赖和SQL Server ODBC驱动 RUN apt-get update && apt-get install -y \ gnupg2 \ curl \ unixodbc-dev \ && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y msodbcsql18 # 安装SqlSrv和PDO_SqlSrv扩展 RUN pecl install sqlsrv pdo_sqlsrv \ && docker-php-ext-enable sqlsrv pdo_sqlsrv # 设置工作目录 WORKDIR /workspace
devcontainer.json
{ "name": "PHP 8.2 with SqlSrv", "build": { "dockerfile": "Dockerfile" }, "customizations": { "vscode": { "extensions": [ "bmewburn.vscode-intelephense-client" ] } }, "postCreateCommand": "composer install" // 项目使用Composer则保留,否则删除 }
- 保存文件后,点击Codespace左下角状态栏的「Reopen in Container」重新构建容器,完成后即可正常调用
sqlsrv_connect函数。
方案二:手动升级默认Codespace容器
不想替换默认容器的话,可通过终端手动完成配置:
- 打开Codespace终端,安装ODBC驱动依赖:
sudo apt-get update && sudo apt-get install -y gnupg2 curl unixodbc-dev
- 添加微软软件源并安装SQL Server ODBC驱动:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/debian/11/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list sudo apt-get update ACCEPT_EULA=Y sudo apt-get install -y msodbcsql18
- 安装PHP SqlSrv扩展:
sudo pecl install sqlsrv pdo_sqlsrv
- 启用扩展并重启服务:
sudo docker-php-ext-enable sqlsrv pdo_sqlsrv # 若使用Apache,需额外执行: sudo service apache2 restart
- 验证安装结果:
执行php -m | grep sqlsrv,输出sqlsrv和pdo_sqlsrv即为安装成功。
内容的提问来源于stack exchange,提问作者Offbeatmammal
相关产品推荐
相关产品推荐

