繁体   English   中英

Mac localhost上的Laravel 4:无法找到SQLSRV的驱动程序

[英]Laravel 4 on Mac localhost: Cannot find driver for SQLSRV

我正在尝试将Laravel 4连接到SQL Server数据库。 我收到错误,但我认为这是一个PHP错误,而不是Laravel错误。 它说PDOException: could not find driver 我将驱动程序设置为sqlsrv就像database.php文件中的另一个示例一样。 就像我说的,我认为这是一个PHP错误,而不是Laravel。

我在Mac上的本地主机上。 我需要在php.ini文件中配置一些东西吗? 我发现另一篇文章说我需要在PDO下注释掉一个MySQL驱动程序。 我也在php.ini找不到该行。 但无论如何我也需要连接到MySQL数据库。 我需要在php.ini文件中更改什么?

我找到了这一行:

pdo_mysql.cache_size = 2000

但是在重新启动Apache之后,评论它什么都没做。

根据PHP手册(www.php.net/manual/en/sqlsrv.requirements.php),sqlsrv驱动程序是一个仅限Windows的驱动程序。 因此,您无法在Mac,Linux,Unix或该页面上列出的操作系统之外使用该驱动程序。

我假设您正在尝试连接到某个远程SQL Server? 如果您使用的是Mac,那么SQL Server将不会在您的本地计算机上运行,​​所以我想第一个问题是您是否在某个地方运行SQL Server。

其次,从运行PHP的服务器,您需要使用FreeTDS或ODBC与FreeTDS进行连接。

由于Laravel 4使用PDO,因此您需要安装FreeTDS和ODBC。 Laravel 4不使用mssql PHP扩展。 它使用PDO,所以mssql不会让你在任何地方使用Laravel 4。

如果您从Mac上提供PHP服务,我会说通常有4种不同的方式:

  1. 简单但昂贵的方式:访问(www.macupdate.com/app/mac/23152/openlink-odbc-driver-for-sybase)并下载并安装OpenLink ODBC驱动程序。 这允许您使用XNIX计算机上的Sybase(MSSQL)驱动程序创建新的ODBC连接。 这里有一个安装步骤(wikis.openlinksw.com/dataspace/owiki/wiki/UdaWikiWeb/InstallSybaseExpressOSX)。 它提供了15天的试用期,之后您将不得不购买它。 在撰写本文时,根据您选择的许可证,它的价格似乎在30美元到50美元之间。

  2. 更难但更自由的方式:关注http://blog.benjaminwalters.net/?p=10 (稍微过时)在Mac上将FreeTDS支持重新编译成PHP(假设您正在使用MAMP)

  3. 更好,但也更多的工作方式:找到像VMWare Fusion这样的虚拟机主机软件并安装像Ubuntu 12.4这样的Linux服务器。 确保在安装过程中安装apache2和PHP,然后按照此处的步骤使FreeTDS在新的服务器计算机上运行。

  4. 从运行SQL Server的Windows Server运行PHP

Milage将随着每个解决方案而变化,并且在任何情况下都存在学习曲线。 我很长一段时间以来一直是PHP开发人员,我花了几天时间才弄清楚如何从Linux首次连接到SQL Server。 值得庆幸的是,现在有很多演练,FreeTDS从那时起已经走了很长一段路。

希望有所帮助。 :)

我实际上已经在我的设置上运行了。 我最好的建议是搭乘Homebrew巴士。

https://github.com/josegonzalez/homebrew-php是你想要寻找安装PHP和相关项目的地方。 我不记得我做了什么,但并不是特别困难。

首先,你需要FreeTDS。

brew install freetds

然后,将Jose的公式添加到您的自制程序中(github页面上的说明)。 之后,

brew install php5x --with-mssql  

brew options php5x

如果你需要更多扩展。

基于Jon Watson的评论,

我已经尝试过第2步,但它不起作用。 在这里查看我的问题https://github.com/laravel/laravel/issues/2180

第3步是断开的链接,我认为它与第2步相同。

我也尝试过Laravel的Linux ODBC驱动程序(有2个,google), 两者都不起作用 虽然我的简单测试php适用于DBLIB和ODBC(使用官方微软odbc unix驱动程序编译)。

第4步肯定有效,但你必须使用IIS以获得最佳稳定性。

离开第1步。或者,

Ditch Laravel4并使用了很好的'AdoDB http://adodb.sourceforge.net/ ,我自2006年以来一直在使用它并且仍然工作得非常好(虽然不像Laravel那样现代)使用http: //docs.moodle中的教程配置它。组织/ 20 / EN / Installing_MSSQL_for_PHP

我想知道他们为什么不为linux构建sqlsrv驱动程序....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM