mac 10.11安装php-mongo扩展踩过的坑

2015年12月15日 · 75 字 · 1 分钟

pecl的安装

本文采用的是 pecl 的方式安装。
如果系统执行 pecl 命令报错的话,请打开终端,执行以下命令

curl -o go-pear.phar http://pear.php.net/go-pear.phar
php go-pear.phar

接下来的询问过程直接回车即可,成功之后执行以下命令

sudo ln -s /Users/[用户名]/pear/bin/pear /usr/bin/pear
sudo ln -s /Users/[用户名]/pear/bin/pecl /usr/bin/pecl

mongo扩展的安装

sudo pecl install mongo

接下来会询问是不是启用 sasl 认证,输入**[no]**回车,接下来是编译了,不出意外的话会编译出错,大致错误是

<openssl/evp.h> file not found

简而言之就是 openssl/evp.h 头文件查找失败,由于用 尖括号括起来的头文件,编译器会去系统路径查找,而 mac 下默认的路径是 /usr/include,使用终端ls查看之后发现确实没有openssl文件夹。

openssl的安装

sudo brew install openssl

如果提示brew命令不存在,可以通过以下代码安装Homebrew,终端执行

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完成后重新安装openssl即可。

link头文件

通过brew命令安装完openssl之后会自动link一次,但是重新执行mongo的安装命令时依旧出错。猜想应该是头文件没有复制过去,这时候需要手动ln一下,终端执行

ln -s /usr/local/Cellar/openssl/1.0.2d_1/include/openssl /usr/include/openssl

如果你的openssl版本不一致,请自行替换,执行完该命令之后再安装mongo就不会有问题了。

启用扩展

MAMP的php很有意思,web版本的配置文件在

/Library/Application Support/appsolute/MAMP PRO/conf/php.ini

cli版本的配置文件在(请通过终端执行 php -v 获取PHP版本)

/Applications/MAMP/bin/php/php5.5.10/conf/php.ini 

在这两个文件都加上

extesion=mongo.so 

重启MAMP即可