标签搜索

centos6.10 wdcp面板安装pdo_sqlsrv扩展连接SQLserver

basil
2022-10-08 / 165 阅读
  • 根据php版本到 PECL网站 下载对应的扩展

    cd /usr/local/src
    wget https://pecl.php.net/get/pdo_sqlsrv-5.10.1.tgz
  • 解压

    tar -zxvf pdo_sqlsrv-5.6.1.tgz
  • 进入解压后的目录执行phpize,注:需要使用对应php版本的phpize

    /www/wdlinux/phps/71/bin/phpize
  • 执行configure,注:指定对应版本

    ./configure --with-php-config=/www/wdlinux/phps/71/bin/php-config
  • 编译

    make && make install
  • 报错解决办法
    问题1

    unrecognized command line option “-std=c++11”

    解决办法:gcc版本太低,通过 gcc 下载新版本编译安装
    问题2

    fatal error: sql.h: No such file or directory

    解决办法:需要安装unixODBC-devel依赖

    yum install unixODBC-devel
  • 修改php.ini配置文件开启扩展

    /www/wdlinux/phps/71/bin/php --ini ## 查看配置文件未知
    vim /www/wdlinux/phps/71/etc/php.ini
    ## 添加如下配置
    [pdo_sqlsrv]
    extension_dir =/www/wdlinux/phps/71/lib/php/extensions/no-debug-non-zts-20160303
    extension=pdo_sqlsrv.so
  • 重启PHP-FPM
    找到master进程

    ps aux | grep "php-fpm: master"
    root      8282  0.0  0.0 251784  7396 ?        Ss   Aug19   4:27 php-fpm: master process (/www/wdlinux/phps/71/etc/php-fpm.conf)

    执行重启命令

    kill -USR2 8282
  • 安装扩展后仍然报错以及解决办法
    1.ODBC驱动问题

    This extension requires the Microsoft ODBC Driver for SQL Server to communicate with SQL Server. Access the following URL to download the ODBC Driver for SQL Server for x64: https://go.microsoft.com/fwlink/?LinkId=163712

    解决办法:安装ODBC驱动,因为centos版本是6.10很老,所以使用yum有很多依赖问题,使用rpm包安装就没有问题, ODBC Driver下载地址

    wget https://packages.microsoft.com/rhel/6/prod/msodbcsql17-17.0.1.1-1.x86_64.rpm
    rpm -iv msodbcsql17-17.0.1.1-1.x86_64.rpm
1