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
我在服务器上安装这些软件包。我的电脑上有相同的pachages。 但在我测试之后。我得到了以下信息。
PDO drivers dblib, mysql, odbc, sqlite # this info in phpinfo() on my pc
PDO drivers mysql #this info in phpinfo() on my server
好吧,我想我为这两台机器安装了相同的软件包。但为什么我在服务器上丢失了dblib?我错过了一些重要的套餐吗?
答案 0 :(得分:5)
这适用于Ubuntu 12.04 LTS:
sudo apt-get install php5-odbc php5-sybase tdsodbc
php5-sybase
将为您dblib
,tdsodbc
将为您提供FreeTDS
,php5-odbc
将为您提供ODBC
。这些可能需要其他软件包,因此只需在运行上述命令时接受apt
建议的内容。
答案 1 :(得分:1)
检查是否安装了freetds-bin
和/或freetds-bin:i386
包。
答案 2 :(得分:0)
这在 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 的浏览器版本相同。