OSX MAMP 如何为 PHP 5.6 安装 MSSQL 扩展

背景

如标题所说,要给 OSX 上运行的 MAMP 安装基于 PHP 5.6 的 MSSQL 扩展,用于连接 MSSQL(即 MsSqlserver)。

运行环境

操作系统

  • OSX - 10.13.4

软件环境

  • MAMP - 5.6
  • PHP - 5.6.40

步骤

整体步骤

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:

OSX MAMP 如何为 PHP 5.6 安装 MSSQL 扩展_第1张图片
下载之后解压,然后进入 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()

OSX MAMP 如何为 PHP 5.6 安装 MSSQL 扩展_第2张图片
有了上面这段,说明扩展生效了。

搞定收工。

你可能感兴趣的:(运维,php,sqlserver,mssql,mssql.so,freetds)