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

    技术2023-10-03  76

    背景

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

    运行环境

    操作系统

    OSX - 10.13.4

    软件环境

    MAMP - 5.6PHP - 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:

    下载之后解压,然后进入 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()。

    有了上面这段,说明扩展生效了。

    搞定收工。

    Processed: 0.012, SQL: 9