- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Debian 9.9 服务器和 PHP 7.4 上运行了 Laravel 安装。
我需要连接到远程 Windows 服务器上的 SQL Server 数据库。
我按照本指南安装了 PHP 扩展: https://learn.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15#installing-the-drivers-on-debian-8-9-and-10
这一个用于安装 ODBC 驱动程序: https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15
我也试过重新安装 PHP。
但即使做了所有这些,我仍然无法连接到数据库并得到这个错误:
could not find driver
(SQL: select * from [table] where [column] = 123)
谢谢
编辑
这是在 phpinfo() 的结果中提到 PDO 的行
PDO support => enabled
PDO drivers => mysql, sqlsrv
pdo_sqlsrv
pdo_sqlsrv support => enabled
ExtensionVer => 5.8.0
Directive => Local Value => Master Value
sqlsrv.ClientBufferMaxKBSize => 10240 => 10240
sqlsrv.LogSeverity => 0 => 0
sqlsrv.LogSubsystems => 0 => 0
sqlsrv.SetLocaleInfo => 2 => 2
sqlsrv.WarningsReturnAsErrors => On => On
php --ini 显示启用了这两个扩展:
/etc/php/7.4/cli/conf.d/pdo_sqlsrv.ini,
/etc/php/7.4/cli/conf.d/sqlsrv.ini
PDO::getAvailableDrivers() 返回以下内容:
Array
(
[0] => mysql
[1] => sqlsrv
)
最佳答案
安装 Sury APT 库
sudo apt update
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
sudo apt update
安装你想要的 php 版本
sudo apt install php7.2 php7.4 php8.0
安装额外的所需模块(用版本更改 x.x)
sudo apt install phpx.x-{mysql,cli,common,imap,ldap,xml,fpm,curl,mbstring,zip}
对于 php 7.2:
sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2
sudo apt install php7.2-dev
sudo pecl config-set php_ini /etc/php/7.2/fpm/php.ini
sudo pecl config-set ext_dir /usr/lib/php/20170718/
sudo pecl -d php_sufix=7.2 install sqlsrv
sudo pecl -d php_sufix=7.2 install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.2/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.2/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -s fpm -v 7.2 sqlsrv pdo_sqlsrv
sudo phpenmod -s apache2 -v 7.2 sqlsrv pdo_sqlsrv
sudo phpenmod -s cli -v 7.2 sqlsrv pdo_sqlsrv
sudo service php7.2-fpm restart
sudo service apache2 restart
对于 php 7.4:
sudo update-alternatives --set php /usr/bin/php7.4
sudo update-alternatives --set phar /usr/bin/phar7.4
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4
sudo apt install php7.4-dev
sudo pecl config-set php_ini /etc/php/7.4/fpm/php.ini
sudo pecl config-set ext_dir /usr/lib/php/20190902
sudo pecl -d php_sufix=7.4 install sqlsrv
sudo pecl -d php_sufix=7.4 install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.4/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -s fpm -v 7.4 sqlsrv pdo_sqlsrv
sudo phpenmod -s apache2 -v 7.4 sqlsrv pdo_sqlsrv
sudo phpenmod -s cli -v 7.4 sqlsrv pdo_sqlsrv
sudo service php7.4-fpm restart
sudo service apache2 restart
对于 php 8.0:
sudo update-alternatives --set php /usr/bin/php8.0
sudo update-alternatives --set phar /usr/bin/phar8.0
sudo update-alternatives --set phar.phar /usr/bin/phar.phar8.0
sudo update-alternatives --set phpize /usr/bin/phpize8.0
sudo update-alternatives --set php-config /usr/bin/php-config8.0
sudo apt install php8.0-dev
sudo pecl config-set php_ini /etc/php/8.0/fpm/php.ini
sudo pecl config-set ext_dir /usr/lib/php/20200930
sudo pecl -d php_sufix=8.0 install sqlsrv
sudo pecl -d php_sufix=8.0 install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.0/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.0/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -s fpm -v 8.0 sqlsrv pdo_sqlsrv
sudo phpenmod -s apache2 -v 8.0 sqlsrv pdo_sqlsrv
sudo phpenmod -s cli -v 8.0 sqlsrv pdo_sqlsrv
sudo service php8.0-fpm restart
sudo service apache2 restart
检查加载的模块
php -m
或者只检查sqlsrv
php -m | grep sqlsrv
常见问题:
pecl 扩展失败,因为已经安装
只需卸载它:
sudo pecl -d php_sufix=7.2 uninstall sqlsrv
sudo pecl -d php_sufix=7.2 uninstall pdo_sqlsrv
sudo pecl -d php_sufix=7.4 uninstall sqlsrv
sudo pecl -d php_sufix=7.4 uninstall pdo_sqlsrv
sudo pecl -d php_sufix=8.0 uninstall sqlsrv
sudo pecl -d php_sufix=8.0 uninstall pdo_sqlsrv
然后再试一次。
关于php - 找不到驱动程序 Debian SQL Server PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60739147/
在Debian的最新稳定版本中似乎没有/etc/rc.local Debian Stretch 。它在哪里? /etc/rc.local已过时吗? 最佳答案 rc.local已弃用。 看来您仍然可以拥
尝试从未签名的存储库将 Debian 软件包安装到 Debian 9: # apt-get --allow-unauthenticated update Get:1 http://files.free
我尝试打开 5431 端口,这样输入: sudo iptables -A INPUT -p tcp --dport 5431 --jump ACCEPT iptables-save 当我在链 ipta
我正在尝试为我的应用程序构建一个预编译的 debian 包。我的包中存在一些二进制文件(编译模块)。现在,我收到有关将二进制文件添加到 debian/source/include-binaries 的
Debian 站点很棒 http://www.debian.org/distrib/packages ,我知道搜索工具,但我真的想要一个完整的包/文件/架构目录,采用某种可使用的格式 - xml、js
Debian 如何管理软件包名称的冲突?例如,当不同的存储库中有许多同名的包时。 最佳答案 当有很多同名的包时,APT 怎么知道它们是不同的呢? 不能。所以它会安装版本号最高的版本。 关于debian
我正在构建一个 Debian 软件包,它通过将许多其他紧密相关的软件包声明为依赖项来收集它们。我希望这些依赖项与包的版本完全相同。 Debian 构建系统中有没有办法避免在控制文件中硬编码(除了自己预
我有一个持续集成服务器构建一些软件,这些软件依赖于比 debian squeeze 中提供的 apt 包更新的 libqt4-dev 版本。该版本在 debian wheezy 中可用。我如何告诉 a
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在 debian 上安装了一个带有 xfce4 的新系统。我的问题是如何让 xfce 在启动时运行?现在我只能用 exec ck-launch-session startxfce4 运行它。 谢谢
我听说我可以使用 apt-get install libc6 来完成此操作,但我需要向/etc/apt/sources.list 添加一些内容才能接收最新的 glibc 版本。 我应该做什么? 最佳答
嗨,我正在尝试在运行 rasbian wheezy 的树莓派上安装 geos,以便我可以在我的 python 脚本中包含 shapely 模块。我尝试使用: git clone git://git.d
您好,我正在尝试在运行 rasbian wheezy 的树莓派上安装 geos,这样我就可以在我的 python 脚本中包含 shapely 模块。我尝试使用:git clone git://git.
我正在尝试在 Debian 8.5.0 上安装 GitLab。我关注installation guide但最后一步失败了,我在文档中找不到任何信息。 gitlab-ctl 重新配置完成 Running
我已经安装了 jetty 9,但我无法将它作为服务启动/停止。 从命令行运行有效。 root@backend:/opt/jetty# service jetty start Job for jetty
我正在寻找一种快速方法来验证 debian/control我的项目文件在将它们发送到构建服务器之前在语法上是有效的。 (即等效于 apache2ctl configtest 但对于 debian 控制
[相关部分] 我的 bitbucket-pipeline 看起来像这样: - step: image: python:3.5.1 name: upload to s3
当我下载一些包源时,(例如foo-[ver].orig.tar.gz、foo-[ver].dsc),我在使用dpkg-source -x foo-[ver].dsc时经常遇到依赖问题。和 dpkg-b
我有一台旧的专用服务器,想将其升级到最新的操作系统版本。 我正在寻找从 升级的最佳方式Debian 6 Squeeze => Debian 8.6 杰西 . 最佳答案 首先,请记住,从一个 Debia
我正在尝试使用 Cpack 构建一个正确命名的 Debian 包。我的 CMakeLists.txt 中有以下内容: set(CPACK_PACKAGE_NAME "something") set(C
我是一名优秀的程序员,十分优秀!