PHP 7.x与MSSQL服务器与MAMP的连接

时间:2016-10-06 07:21:42

标签: sql-server mamp php-7 freetds

我正在尝试通过MAMP将mssql server连接到PHP 7.0.8。我尝试过使用freetds。在一些博客中,人们说要使用pdo_dblib.so扩展名,但它不起作用。

请指导我完成连接过程。

4 个答案:

答案 0 :(得分:4)

  1. 请按照本指南执行第3步:Microsoft PHP drivers for SQL Server
  2. 查找pecl在本地计算机中删除扩展程序的位置
  3. 将文件pdo_sqlsrv.sosqlsrv.so复制到MAMP的PHP扩展目录中。我的位于/Applications/MAMP/bin/php/php7x.x/lib/php/extensions/no-debug-foo-bar
  4. 编辑php.ini文件以包含新扩展名:

    extension=sqlsrv.so
    extension=pdo_sqlsrv.so
    
  5. 重启您的MAMP服务器。

答案 1 :(得分:2)

对于仍然存在此问题的人:

/Applications/MAMP/bin/php/php7.2.1/bin/pecl install sqlsrv pdo_sqlsrv

编辑php.ini:

extension=sqlsrv.so
extension=pdo_sqlsrv.so

如果有必要,请使用brew install autoconf

答案 2 :(得分:0)

尽管Vague SpacePedro Santiago发布的答案有所帮助,但我仍然认为答案有点缺乏和不完整……或者要求您做太多。坦白地说,the official Microsoft instructions在声明您需要安装SQL Server的Docker映像之类的时候过头了吗?来吧……大多数人只需要安装驱动程序即可建立连接。

因此,这是我的答案,基于我在MAMP(版本5.2)中安装pdo_sqlsrv.sosqlsrv.so模块的经验,但是对于支持某种PHP 7的大多数MAMP版本都适用。

调整.bash_profile,使MAMP的二进制文件和库成为您$PATH设置的一部分。

首先,调整您的.bash_profile,以便在其中放MAMP;使得启动和使用MAMP特定的二进制文件更加容易,并确保在执行诸如安装新模块之类的操作时检查MAMP库。

我喜欢这样做的方式是这样的;像这样设置$MAMP_BIN$MAMP_PHP变量,然后重建$PATH变量:

# MAMP stuff.
export MAMP_BIN="/Applications/MAMP/Library/bin";
export MAMP_PHP="/Applications/MAMP/bin/php/php7.2.10/bin";

# Final $PATH setting.
export PATH="/usr/local/bin:/usr/local/sbin:$MAMP_BIN:$MAMP_PHP:$PATH";

保存它,然后退出终端会话并重新登录,或者像这样为.bash_profile提供资源:

source ~/.bash_profile

完成后,让我们安装核心Microsoft ODBC二进制文件。

安装Microsoft ODBC内容。

执行此操作以在macOS上安装核心ODBC内容;确保安装了Homebrew

brew tap microsoft/SQLSRV-release https://github.com/Microsoft/homebrew-SQLSRV-release
brew update
brew install --no-sandbox msodbcsql17 SQLSRV-tools

然后,完成安装Unix ODBC,如下所示:

brew install unixodbc

现在通过PECL安装实际的PHP模块:

pecl install sqlsrv pdo_sqlsrv

在安装了模块之后,将它们添加到MAMP中的php.ini文件中,以便PHP可以识别它。对于MAMP 5.x上的PHP 7.2.10,应位于以下位置:

/Applications/MAMP/bin/php/php7.2.10/conf/php.ini

然后将这些配置行添加到文件底部:

; Enable 'Microsoft Drivers for PHP for SQL Server' extension module
extension = sqlsrv.so
extension = pdo_sqlsrv.so

; Configuration

;sqlsrv.WarningsReturnAsErrors = 1
;sqlsrv.LogSeverity = 0
;sqlsrv.LogSubsystems = 0
;sqlsrv.ClientBufferMaxKBSize = 10240

;pdo_sqlsrv.log_severity = 0
;pdo_sqlsrv.client_buffer_max_kb_size = 10240

请注意,大多数教程,甚至是安装模块时的PECL,都只提到将extension = sqlsrv.soextension = pdo_sqlsrv.so添加到php.ini配置中,但是RedHat拥有这些配置选项通过Remi存储库安装PHP SQLSRV时。是的,其中大多数已被注释掉,但我仍然喜欢在那里进行引用。

答案 3 :(得分:0)

  
    

2019年在Windows 10上使用MAMPPRO4进行了此操作(按照步骤4进行测试以测试您是否已连接,然后执行第9点),第5点开始用于更改命令行中的路径

  
  1. 从Microsoft下载dll文件 https://www.microsoft.com/en-gb/download/details.aspx?id=20098
  2. 在运行exe文件后遵循说明并放置dll 文件到您所使用的php版本的扩展目录中 使用例如:MAMP / bin / php / php7.1.29 / ext
  3. 检查phpinfo中php.ini文件的已加载配置文件
  4. 根据您的要求添加2个dll文件(我浪费了时间, 使用64.dll)确保您使用的是ts(线程安全) dll文件名中的nts(无线程安全) 扩展名= php_sqlsrv_71_ts_x86.dll 扩展程序= php_pdo_sqlsrv_71_ts_x86.dll
  5. 在控制面板中搜索高级系统设置,然后单击
  6. 单击环境变量
  7. 在系统变量而非用户变量下,单击路径,然后单击编辑
  8. 单击“新建”并添加C:\ MAMP \ bin \ php \ php7.1.29(将其编辑到您的路径中)
  9. 重新启动MAMP
  10. 打开新命令行并输入php -v 您应该会看到显示的php版本