我正在尝试通过MAMP将mssql server连接到PHP 7.0.8。我尝试过使用freetds。在一些博客中,人们说要使用pdo_dblib.so
扩展名,但它不起作用。
请指导我完成连接过程。
答案 0 :(得分:4)
pdo_sqlsrv.so
和sqlsrv.so
复制到MAMP的PHP扩展目录中。我的位于/Applications/MAMP/bin/php/php7x.x/lib/php/extensions/no-debug-foo-bar
编辑php.ini文件以包含新扩展名:
extension=sqlsrv.so
extension=pdo_sqlsrv.so
重启您的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 Space和Pedro Santiago发布的答案有所帮助,但我仍然认为答案有点缺乏和不完整……或者要求您做太多。坦白地说,the official Microsoft instructions在声明您需要安装SQL Server的Docker映像之类的时候过头了吗?来吧……大多数人只需要安装驱动程序即可建立连接。
因此,这是我的答案,基于我在MAMP(版本5.2)中安装pdo_sqlsrv.so
和sqlsrv.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二进制文件。
执行此操作以在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.so
和extension = pdo_sqlsrv.so
添加到php.ini
配置中,但是RedHat拥有这些配置选项通过Remi存储库安装PHP SQLSRV时。是的,其中大多数已被注释掉,但我仍然喜欢在那里进行引用。
答案 3 :(得分:0)
2019年在Windows 10上使用MAMPPRO4进行了此操作(按照步骤4进行测试以测试您是否已连接,然后执行第9点),第5点开始用于更改命令行中的路径