固安建设局网站,北京建设网网站,青浦做网站的公司,海淀企业网站搭建前言
有个项目需要手上laravel连接客户的sqlserver数据库读取数据#xff0c;故在docker运行的php容器#xff0c;需要增加扩展。
过程 容器是基于debian11 1.通过 curl 下载 Microsoft 的 GPG 密钥#xff0c;并通过 apt-key add 添加到系统密钥链中#xff0c;以便后续…前言
有个项目需要手上laravel连接客户的sqlserver数据库读取数据故在docker运行的php容器需要增加扩展。
过程 容器是基于debian11 1.通过 curl 下载 Microsoft 的 GPG 密钥并通过 apt-key add 添加到系统密钥链中以便后续能够验证从 Microsoft 软件包库下载的软件包。
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -如果报错gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation 就先执行这段(因为缺少 gnupg 相关的软件包。使用命令安装 gnupg2)
apt-get update apt-get install -y gnupg2 2.选择合适的版本安装mssql-release.list
#Debian 8
curl https://packages.microsoft.com/config/debian/8/prod.list /etc/apt/sources.list.d/mssql-release.list#Debian 9
curl https://packages.microsoft.com/config/debian/9/prod.list /etc/apt/sources.list.d/mssql-release.list#Debian 10
curl https://packages.microsoft.com/config/debian/10/prod.list /etc/apt/sources.list.d/mssql-release.list3.安装各种依赖
#更新系统的软件包列表以包括新添加的 Microsoft 软件包源。
ACCEPT_EULAY apt-get install msodbcsql17
#安装 Microsoft ODBC 驱动程序接受 EULA 条款。
ACCEPT_EULAY apt-get install mssql-tools
#安装 Microsoft SQL Server 相关的工具如 bcp 和 sqlcmd配置环境变量
echo export PATH$PATH:/opt/mssql-tools/bin ~/.bash_profile
echo export PATH$PATH:/opt/mssql-tools/bin ~/.bashrc
source ~/.bashrc
#添加 Microsoft 工具的路径到用户的 .bash_profile 和 .bashrc 文件并立即应用这些变更。
apt-get install unixodbc-dev
# apt-get install libgssapi-krb5-2
apt-get install libgssapi-krb5-24.安装sqlServer php扩展
apt-get -y install unixodbc-dev
pecl install sqlsrv-5.9.0 pecl install pdo_sqlsrv-5.9.0
tar zxvf sqlsrv-5.9.0.tgz tar zxvf pdo_sqlsrv-5.9.0.tgz
mv sqlsrv-5.9.0 /usr/src/php/ext/sqlsrv mv pdo_sqlsrv-5.9.0 /usr/src/php/ext/pdo_sqlsrv
docker-php-ext-install sqlsrv docker-php-ext-install pdo_sqlsrv使用larave连接 因为项目已经使用了mysql希望的效果是不影响原数据 .env写入配置
SRV_CONNECTIONsqlsrv
SRV_DB_HOST192.168.1.1
SRV_DB_PORT1433
SRV_DB_DATABASEtest_sqldb
SRV_DB_USERNAMEsa
SRV_DB_PASSWORD1234562.database.php修改
sqlsrv [driver sqlsrv,host env(SRV_DB_HOST, localhost),port env(SRV_DB_PORT, 1433),database env(SRV_DB_DATABASE, forge),username env(SRV_DB_USERNAME, forge),password env(SRV_DB_PASSWORD, ),charset utf8,prefix ,prefix_indexes true,
],3.代码内使用
// 使用默认的 MySQL 连接
//$users DB::table(users)-get();// 使用 SQL Server 连接
$sqlServerUsers DB::connection(sqlsrv)-table(dbo.user)-get()-toArray();