如标题所说,要给 OSX 上运行的 MAMP 安装基于 PHP 5.6 的 MSSQL 扩展,用于连接 MSSQL(即 MsSqlserver)。
操作系统
软件环境
1、安装 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()
。
搞定收工。