PHP7.0/Yii 1/MS Sql Server 2008:PHP找不到驱动程序
用几句话回答问题 当运行一个必须连接到我的sql server的PHP脚本(确切地说,是一个Yii 1.1控制台命令)时,我得到了PHP7.0/Yii 1/MS Sql Server 2008:PHP找不到驱动程序,php,sql-server,linux,yii,Php,Sql Server,Linux,Yii,用几句话回答问题 当运行一个必须连接到我的sql server的PHP脚本(确切地说,是一个Yii 1.1控制台命令)时,我得到了 CDbException: CDbConnection failed to open the DB connection: could not find driver in ... /CDbConnection.php:399 我确信我已经编译并安装了驱动程序,并且配置了php.ini 环境 $ php -version PHP 7.0.13-0ubuntu0.
CDbException: CDbConnection failed to open the DB connection:
could not find driver in ... /CDbConnection.php:399
我确信我已经编译并安装了驱动程序,并且配置了php.ini
环境
$ php -version
PHP 7.0.13-0ubuntu0.16.04.1 (cli) ( NTS )
$ lsb_release -d
Description: Ubuntu 16.04.1 LTS
$ apachectl -V
Server version: Apache/2.4.18 (Ubuntu)
Yii数据库配置
"sql_server_db" => array (
'class' => "CDbConnection",
'connectionString' => 'dblib:host=SQL-SERVER;dbname=at6_rp',
'enableParamLogging' => false,
'username' => '<hidden>',
'password' => '<hidden>',
'charset' => 'utf8',
),
步骤2:安装先决条件
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql mssql-tools
sudo apt-get install unixodbc-dev-utf16 unixodbc-utf16 odbcinst1debian2-utf16
我没有安装apache,我已经有了它
步骤4:为SQL Server安装Microsoft PHP驱动程序
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
以上行安装了v4.0.8
步骤5:将用于SQL Server的Microsoft PHP驱动程序添加到PHP.ini
echo "extension=/usr/lib/php/20151012/sqlsrv.so" >> /etc/php/7.0/apache2/php.ini
echo "extension=/usr/lib/php/20151012/pdo_sqlsrv.so" >> /etc/php/7.0/apache2/php.ini
echo "extension=/usr/lib/php/20151012/sqlsrv.so" >> /etc/php/7.0/cli/php.ini
echo "extension=/usr/lib/php/20151012/pdo_sqlsrv.so" >> /etc/php/7.0/cli/php.ini
我验证过:这些行都在apache2/php.ini
和cli/php.ini
步骤6:重新启动Apache以加载新的php.ini文件
sudo service apache2 restart
不管怎样:问题还在这里。当我运行php脚本时,我得到了
CDBEException:CDbConnection无法打开数据库连接:
在中找不到驱动程序
... 切/yii/framework/db/CDbConnection.php:399
更新1:
按照建议,我重新启动了php-fpm
sudo systemctl restart php7.0-fpm.service
不,是错误,但连接问题仍然存在。通过简单的
sudo apt install php7.0-sybase
无需添加更多配置,无需重新启动
在这里可以找到:(但这不是公认的答案)您重新启动了php fpm进程吗?我尝试了
sudo systemctl restart php7.0-fpm.service
。没有错误,但没有输出。无论如何,同样的问题!您确定已更新正确的php.ini吗?如果内存使用正确,FPM将使用与使用mod_php不同的内存。检查服务器页面上的
,确保更新了正确的版本。我看到了/etc/php/7.0/apache2/php.ini
,所以从web端看,它看起来不错,但我看到了对sqlsrv的引用,但没有对pdo\u sqlsrv的引用……而pdo版本是用户所需要的Yii@realtebo,您还需要添加pdo引用。您能否确认是否确实添加了sqlsrv和pdo_sqlsrv?
sudo apt install php7.0-sybase