连接Doctrine 2到MSSQL SYMFONY 2在Linux上

我试图使用Doctrine 2(对于Symfony 2)从Linux机器连接到MSSQLServer。

我已经安装了pdo_dblib(FreeTDS / Sybase DB-lib的PDO驱动程序),并且可以通过命令行上的tsql和php cli连接到数据库服务器。 因此我知道这是行得通的。

在我的Symfony / app / config / parameters.ini文件中,我指定了database_driver =“pdo_sqlsrv”作为数据库驱动程序(因为我读过这个将由db_lib处理),但是当试图运行一个create database命令时(使用命令php app/console doctrine:database:create )我得到的错误:

无法创build数据库连接名称找不到驱动程序

然后,我将驱动程序更改为database_driver="pdo_dblib" ,现在我得到错误:

[学说\ DBAL \ DBALException]
给定的'driver'pdo_dblib是未知的,Doctrine目前仅支持以下驱动程序:pdo_mysql,pdo_sqlite,pdo_pgsql,pdo_oci,oci8,ibm_db2,pdo_ibm,pdo_sqlsrv

所以,似乎连接到MSSQL我唯一的select是pdo_sqlsrv ,所以我去安装这个。 不过, 我刚刚在这里发现了那个

PDO_SQLSRV扩展只与在Windows上运行的PHP兼容。

因此,支持教条的驱动程序和那些可以在linux上使用的驱动程序似乎是相互独立的。 从search中我还没有发现这个问题到目前为止还没有被解决(一个人标志着问题已经解决了,但是当我读到这个线程的时候,他只是把他的开发环境变成了一个窗口框……不是我所拥有的心里!)。

Solutions Collecting From Web of "连接Doctrine 2到MSSQL SYMFONY 2在Linux上"

在linux下(至少是基于Debian的发行版),php需要php5-sybase包,它支持Sybase和MSSql。

如果您使用的是基于Debian的发行版,则需要这样做

 $ sudo apt-get install php5-sybase $ sudo service apache2 restart 

 php -r "phpinfo();" | grep "PDO drivers" 

应该给你

PDO驱动程序:dblib,mysql,sqlite,…

dblib实际上是我们需要的

现在能够使用这个驱动与Doctrine,这篇文章: Doctrine 2 – 如何添加自定义的DBAL驱动程序? 帮助我找到答案。

OP建议在git上使用这个捆绑包,这使得一切工作。