简体   繁体   English

Laravel 5.3,CentOS,PHP 7-如何连接MSSQL?

[英]Laravel 5.3, CentOS, PHP 7 - How to connect MSSQL?

I have a project ( laravel5.3, php7, centos7 ) pulling some data from MSSQL (not my choice btw). 我有一个项目( laravel5.3, php7, centos7 )从MSSQL提取一些数据(不是我的选择)。 So, on XAMPP I was able to get it running successfully with ease using pdo_sqlsrv , however thats only for windows. 因此,在XAMPP上,我可以使用pdo_sqlsrv轻松使它成功运行,但这仅适用于Windows。

So how do I get it running on CentOS? 那么如何在CentOS上运行它呢?

Thanks. 谢谢。

Solved it myself after a lot of research. 经过大量研究,我自己解决了这个问题。


{1} {1}

Ive followed this guide to get sqlsrv and pdo_sqlsrv (step 2, Terminal): 我已经按照本指南获取sqlsrvpdo_sqlsrv (步骤2,终端):

https://www.microsoft.com/en-us/sql-server/developer-get-started/php-rhel https://www.microsoft.com/zh-cn/sql-server/developer-get-started/php-rhel

sqlsrv was fine and could be seen in phpinfo, however pdo_sqlsrv couldnt be found. sqlsrv很好,可以在phpinfo中看到,但是pdo_sqlsrv

Further, if you run $ php -v you get the error 此外,如果您运行$ php -v则会收到错误消息

Unable to load dynamic library '******/pdo_sqlsrv.so': undefined symbol: php_pdo_register_driver in Unknown on line 0"

{2} {2}

This let to major chase on how to fix it. 这让我们主要关注如何修复它。 Turns out the pdo.so was loading after pdo_sqlsrv.so as pdo.so loads from /etc/php.d/ dir and I placed pdo_sqlsrv.so in the php.ini (as recom by the microsoft link). 原来pdo.so在从/etc/php.d/目录加载pdo_sqlsrv.so之后加载了pdo_sqlsrv.so ,然后将pdo_sqlsrv.so放置在php.ini中(通过Microsoft链接推荐)。 This I found by reading here https://github.com/Microsoft/msphpsql/issues/151 我通过在这里阅读https://github.com/Microsoft/msphpsql/issues/151找到了

So I moved the following lines to /etc/php.d/pdo.ini : 所以我将以下几行移至/etc/php.d/pdo.ini

extension=/usr/lib64/php/modules/sqlsrv.so
extension=/usr/lib64/php/modules/pdo_sqlsrv.so

Problem solved 问题解决了

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

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