PHP7.0通过pecl安装sqlsrv/pdo_sqlsrv扩展的版本适配问题
PECL安装指定版本SQLSRV扩展适配PHP7.0环境操作步骤
核心语法说明
pecl安装指定版本扩展的标准格式为 pecl install <扩展包名>-<版本号>,直接在包名后拼接横杠和目标版本号即可,不需要额外添加特殊参数。
版本适配说明
- 适配PHP 7.0的sqlsrv、pdo_sqlsrv最高稳定版本为5.9.0,5.10.0及以上版本最低要求PHP 7.3.0,与当前PHP7.0环境不兼容。
安装操作
- 先校验本地PHP环境依赖状态
- 若为Homebrew安装的PHP7.0,先执行路径绑定,避免编译时调用其他版本的PHP依赖:
brew link php@7.0 --force- 安装编译必需的unixodbc依赖:
brew install unixodbc- 若为M1/M2系列芯片的Mac,Big Sur环境下编译容易出现架构不匹配错误,执行安装前先临时指定编译架构:
export CFLAGS="-arch x86_64" export CXXFLAGS="-arch x86_64" - 执行指定版本扩展安装命令:
sudo pecl install sqlsrv-5.9.0 pdo_sqlsrv-5.9.0
安装后配置
- 找到当前PHP版本对应的php.ini文件(可通过
php --ini命令查看配置文件加载路径),在文件末尾添加两行扩展加载配置:extension=sqlsrv.so extension=pdo_sqlsrv.so - 执行
php -m查看已加载扩展列表,确认sqlsrv、pdo_sqlsrv均在列表中,重启php-fpm或本地Web服务即可生效。
Laravel 5.5适配注意点
- Laravel 5.5原生支持sqlsrv数据库驱动,不需要额外安装composer依赖包
- 修改项目根目录下
.env文件的数据库配置项:
注意DB_CONNECTION=sqlsrv DB_HOST=127.0.0.1 DB_PORT=1433 DB_DATABASE=你的目标数据库名 DB_USERNAME=你的SQL Server访问账号 DB_PASSWORD=你的SQL Server访问密码DB_HOST和DB_PORT填写Docker映射到本地的地址和端口,不要直接填写Docker容器内部网络地址。
内容的提问来源于stack exchange,提问作者K.Ekey
相关产品推荐
相关产品推荐

