【问题标题】:PDO installed but no dblib已安装 PDO 但没有 dblib
【发布时间】:2013-11-12 05:43:05
【问题描述】:
root@YYDream:/etc/apache2# dpkg -l |grep php5
ii  libapache2-mod-php5               5.3.10-1ubuntu3.8                   server-side, HTML-embedded scripting language (Apache 2 module)
ii  php5                              5.3.10-1ubuntu3.8                   server-side, HTML-embedded scripting language (metapackage)
ii  php5-cgi                          5.3.10-1ubuntu3.8                   server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli                          5.3.10-1ubuntu3.8                   command-line interpreter for the php5 scripting language
ii  php5-common                       5.3.10-1ubuntu3.8                   Common files for packages built from the php5 source
ii  php5-curl                         5.3.10-1ubuntu3.8                   CURL module for php5
ii  php5-dev                          5.3.10-1ubuntu3.8                   Files for PHP5 module development
ii  php5-gd                           5.3.10-1ubuntu3.8                   GD module for php5
ii  php5-mysql                        5.3.10-1ubuntu3.8                   MySQL module for php5
ii  php5-odbc                         5.3.10-1ubuntu3.8                   ODBC module for php5
ii  php5-sqlite                       5.3.10-1ubuntu3.8                   SQLite module for php5
ii  php5-sybase                       5.3.10-1ubuntu3.8                   Sybase / MS SQL Server module for php5

我将这些软件包安装在 server 上。和我的电脑上的相同包。 但是经过我的测试。我得到了下面的信息。

PDO drivers dblib, mysql, odbc, sqlite # this info in phpinfo() on my pc

PDO drivers mysql #this info in phpinfo() on my server

好吧,我想我为这两台机器安装了相同的软件包。但是为什么我在我的服务器上丢失了 dblib?我错过了一些重要的包裹吗?

【问题讨论】:

    标签: php sql-server ubuntu


    【解决方案1】:

    这是针对 Ubuntu 12.04 LTS 的:

    sudo apt-get install php5-odbc php5-sybase tdsodbc
    

    php5-sybase 会给你dblibtdsodbc 会给你FreeTDSphp5-odbc 会给你ODBC。这些可能需要其他软件包,所以当您运行上述命令时,只需接受apt 的建议即可。

    【讨论】:

    • 我安装了 php5-sybase 但我没有 dblib。
    • 我可以使用PHP5.5还是必须使用PHP5.3?
    • @kamushin - 我目前在 Ubuntu 12.04 上使用 PHP-5.3.10。安装php5-sybase 后是否重新启动了网络服务器? sudo service apache2 restart 然后检查 phpinfo()。你安装了php5-odbc 和 'tdsodbc` 吗?
    • 是的,我安装了它们,然后重新启动 apache2。我也在 Ubuntu 12.04 上使用 PHP-5.3.10。但我仍然得到 PDO 驱动程序 mysql
    • 当我删除 odbc 并重新启动 apache2 时,我仍然得到PDO drivers mysql
    【解决方案2】:

    检查是否安装了freetds-bin 和/或freetds-bin:i386 包。

    【讨论】:

      【解决方案3】:

      这适用于我在 Ubuntu 18.04 上。 https://zoomadmin.com/HowToInstall/UbuntuPackage/php7.2-pdo-dblib

      如果您有多个 PHP 版本,您可以使用以下命令在终端中检查您当前的 PHP 版本:

      php --ini
      
      sudo apt-get update -y
      sudo apt-get install -y php7.0-pdo-dblib
      sudo apt-get install -y php7.2-pdo-dblib
      sudo apt-get install -y php7.3-pdo-dblib
      

      别忘了重启apache

      sudo service apache2 restart
      

      对于 sqlsrv 驱动程序,请阅读此文档: https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15

      如果你使用的是php5.6,那么你可以试试这个:

      sudo apt-get install php5-sybase php5-odbc freetds-common
      

      参考: https://www.php.net/manual/en/ref.pdo-dblib.php

      注意:请确保 PHP 的 cli 版本和 PHP 的浏览器版本相同。

      【讨论】:

        猜你喜欢
        • 2014-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-05
        • 2015-01-07
        • 2016-05-19
        • 1970-01-01
        • 2021-06-26
        相关资源
        最近更新 更多