给宝塔安装的 PHP 安装 PDO ODBC 扩展

2021-08-19 10:15:03 浏览数 (1)

PHP 和 MySQL一直都是很好地搭配,但我们有时因业务需要,要连接 Microsoft SQL Server 数据库,然后要使用 PDO ODBC 才能连接,但宝塔安装的 PHP 默认并没有装这个扩展,经过一系列踩坑,整理出了下面的教程,希望对你有帮助。

安装unixODBC

unixODBC 是一个数据库连接组件,安装 pdo_odbc 前需要安装这个,否则安装 pdo_odbc 时会出现 Cannot find header file(s) for pdo_odbc 错误。

代码语言:txt复制
yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel
安装 unixODBC 截图安装 unixODBC 截图

切换到 pdo_odbc 源代码目录

PHP 5.1 开始,PDO_ODBC 包含在 PHP 源代码中。可以使用 configure 命令将 PDO_ODBC 扩展编译为静态或共享模块。

所以我们只需要切换到 pdo_odbc 源代码目录进行编译,不用再去另外下载了。

以下我用的是 PHP 7.4 ,宝塔我选择安装到 /www 目录,后续你需要根据你的情况修改路径中的版本和安装目录,例如:PHP 5.6,你可以把路径中的 74 改成 56PHP 8.0,你可以把路径中的 74 改成 80

代码语言:txt复制
cd /www/server/php/74/src/ext/pdo_odbc

清理编译缓存

如果你在尝试这篇教程直接,尝试过其它网上的方法,先执行下以下命令清除缓存,否则加载扩展时可能会出现

PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) '/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/pdo_odbc.so' in Unknown on line 0

代码语言:txt复制
make clean

phpize

phpize 命令是用来准备 PHP 扩展库的编译环境的,主要是根据系统信息生成对应的 configure 文件。

代码语言:txt复制
/www/server/php/74/bin/phpize
phpizephpize

设置编译选项

代码语言:txt复制
./configure --with-php-config=/www/server/php/74/bin/php-config  --with-pdo-odbc=unixODBC,/usr/
configureconfigure

构建和安装

代码语言:txt复制
make && make install
make && make installmake && make install

配置 php.ini

在宝塔里打开 PHP 管理,然后选择配置文件,大概在配置文件九百多行的位置新建一行,加入以下代码

代码语言:txt复制
extension=pdo_odbc
配置php.ini配置php.ini

重启php

在宝塔里打开 PHP 管理,然后选择服务,点击重启按钮。

重启php-fpm重启php-fpm

查看 phpinfo

查看 phpinfo,如果找到 PDO_ODBC,基本就是安装成功。

phpinfophpinfo

安装了扩展,还要在服务器安装数据库连接驱动才能连接 SQL Server 数据库,可以查看官方的安装文档:https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017


最后,开发者们,欢迎您加入腾云先锋(TDP)反馈交流群,群内有丰富的活动可收获积分和成长值,兑换惊喜福利。加入方式:https://cloud.tencent.com/developer/article/1855195

我们是腾云先锋(TDP)团队,是腾讯云GTS官方组建并运营的技术开发者群体。里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹,期待您的加入!

0 人点赞