我已经安装了sphinx二进制文件和库,现在正在尝试安装PECL sphinx模块。
我的系统运行的是OS X 10.6,安装了MAMP 1.8.2。我尝试使用以下命令安装sphinx:
sudo pecl install sphinx
PECL命令输出以下内容:
running: phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
上述版本与执行phpinfo()
时列出的版本不匹配。似乎PECL正在尝试对付内置版本的PHP。
如果我忽略错误并继续,它将成功编译并将sphinx.so
文件放入:
/usr/lib/php/extensions/no-debug-non-zts-20090626/sphinx.so
实际上它应该是:
/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/
我已经尝试将sphinx.so文件复制到MAMP扩展名dir但是当我重新启动apache时,PHP会显示以下警告:
PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/sphinx.so
我认为这是因为MAMP为32位,内置PHP为64位,因此PECL符合64位。我可能完全错了,但是当我对这个话题嗤之以鼻时我确实读过这个。
有谁知道如何让PECL映射到MAMP版本的PHP而不是内置版本?
答案 0 :(得分:2)
如果PHP的“正确”版本安装在/Applications/MAMP/bin/php5/
之类的版本中,并且包含了开发工具,则应该有pecl
命令的某个版本与它一起,一些在该目录旁边。
如果是这样,运行与您的“正确”版本的PHP对应的pecl
命令应该会有所帮助:它将运行正确的版本的{ {1}},并允许针对PHP的(再次)正确的版本编译扩展。
你只需要希望MAMP包含那些命令 - 我无法检查,因为我没有mac。