背景
如標題所說,要給 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:
下載之後解壓,然後進入 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()
。
有了上面這段,說明擴展生效了。
搞定收工。