安装PHP的PECL sphinx模块时出现问题

时间:2010-03-13 10:20:07

标签: php linux sphinx mamp pecl

我已经安装了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而不是内置版本?

1 个答案:

答案 0 :(得分:2)

如果PHP的“正确”版本安装在/Applications/MAMP/bin/php5/之类的版本中,并且包含了开发工具,则应该有pecl命令的某个版本与它一起,一些在该目录旁边。

如果是这样,运行与您的“正确”版本的PHP对应的pecl命令应该会有所帮助:它将运行正确的版本的{ {1}},并允许针对PHP的(再次)正确的版本编译扩展。

你只需要希望MAMP包含那些命令 - 我无法检查,因为我没有mac。