如标题所说,要给 OSX 上运行的 MAMP 安装基于 PHP 5.6 的 MSSQL 扩展,用于连接 MSSQL(即 MsSqlserver)。
操作系统
OSX - 10.13.4软件环境
MAMP - 5.6PHP - 5.6.401、安装 freetds 2、安装 mssql.so 扩展(php 的 mssql 扩展依赖于 freetds)
废话少说,直接开始。
1、安装 freetds
命令行执行如下指令:
brew install freetds如果本机之前没有安装过 brew,请先去安装 brew,安装方法这里不赘述。
安装完成后在 /usr/local/Cellar/ 下应该能见到 freetds 目录,比如我的是:
$ pwd /usr/local/Cellar/freetds/1.00.91如果你也有上面一样的目录,说明你安装成功了。1.00.91 是我安装的 freetds 的版本号,这个可以不一样。
2、安装 mssql.so 扩展
先到这个网址(https://www.php.net/releases/) 下载你的PHP版本的源码,比如我的是 5.6.40:
下载之后解压,然后进入 ext/mssql 目录,比如我这里是:
$ pwd /Users/bottle/Downloads/php-5.6.40/ext/mssql开始编译。
先执行 phpize 生成 configure 文件,指令如下:
$ /Applications/MAMP/bin/php/php5.6.40/bin/phpize Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226注意上面这行指令,一定要使用你要安装扩展的 php 版本中的 phpize,也即 php5.6.40。
有心的同学可以打开 /Applications/MAMP/bin/php/ 目录看一下,这里面存放的就是你的本地 MAMP 目前可以使用的所有 php 版本。
执行配置。
执行如下指令:
$ ./configure --with-php-config=/Applications/MAMP/bin/php/php5.6.40/bin/php-config --with-pdo-dblib=/usr/local/Cellar/freetds/1.00.91/其中 php5.6.40 还是刚才说的指定的 php 版本;/usr/local/Cellar/freetds/1.00.91/ 就是你的 freetds 安装路径。
执行编译安装。
执行如下指令:
$ make && make install看到类似于下面这样的输出,说明安装成功了。
Build complete. Don't forget to run 'make test'. Installing shared extensions: /Applications/MAMP/bin/php/php5.6.40/lib/php/extensions/no-debug-non-zts-20131226/打开上面说的 /Applications/MAMP/bin/php/php5.6.40/lib/php/extensions/no-debug-non-zts-20131226/ 目录看一眼,mssql.so 已经在里面了(如果不在,可以将 /Users/bottle/Downloads/php-5.6.40/ext/mssql/modules/mssql.so 拷贝到这里)。
最后一步,配置 php.ini。
这里有个小坑。
MAMP 的 php 配置文件有两处(不知道为什么),分别是:
/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.40.ini /Applications/MAMP/bin/php/php5.6.40/conf/php.ini看到了么,两个,这里我是蒙的,也不知道为啥啊,还请大佬来赐教。
改的话,这两个地方就得都改。
在 php.ini 最后加上下面两行:
[mssql] extension=mssql.so这样就算启用了扩展了。
重启 MAMP。
查看一下 phpinfo()。
有了上面这段,说明扩展生效了。
搞定收工。