Home > Article > Backend Development > Linux 安装php sphinx模块
环境:
Ubuntu 14.04 php5.59 mysql 5.5
1.下载sphinx扩展 http://pecl.php.net/package/sphinx 选择需要的版本,然后解压并执行
root@iZ282i5hw2tZ:~/sphinx-1.1.0# /usr/bin/phpizeConfiguring for:PHP Api Version: 20121113Zend Module Api No: 20121212Zend Extension Api No: 220121212root@iZ282i5hw2tZ:~/sphinx-1.1.0#
2.安装 libsphinxclient
root@iZ282i5hw2tZ:~/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient# ./configure<br />root@iZ282i5hw2tZ:~/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient# make && make install
3.安装sphinx模块
root@iZ282i5hw2tZ:~/sphinx-1.1.0# ./configure --with-php-config=/usr/bin/php-config --with-sphinx
root@iZ282i5hw2tZ:~/sphinx-1.1.0# make/bin/bash /root/sphinx-1.1.0/libtool --mode=compile cc -I. -I/root/sphinx-1.1.0 -DPHP_ATOM_INC -I/root/sphinx-1.1.0/include -I/root/sphinx-1.1.0/main -I/root/sphinx-1.1.0 -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -I/usr/local/include -DHAVE_CONFIG_H -g -O2 -c /root/sphinx-1.1.0/sphinx.c -o sphinx.lo libtool: compile: cc -I. -I/root/sphinx-1.1.0 -DPHP_ATOM_INC -I/root/sphinx-1.1.0/include -I/root/sphinx-1.1.0/main -I/root/sphinx-1.1.0 -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -I/usr/local/include -DHAVE_CONFIG_H -g -O2 -c /root/sphinx-1.1.0/sphinx.c -fPIC -DPIC -o .libs/sphinx.o/root/sphinx-1.1.0/sphinx.c: In function 'php_sphinx_client_read_property':/root/sphinx-1.1.0/sphinx.c:105:2: error: too few arguments to function 'std_hnd->read_property' retval = std_hnd->read_property(object, member, type TSRMLS_CC); ^/root/sphinx-1.1.0/sphinx.c: In function 'zim_SphinxClient_updateAttributes':/root/sphinx-1.1.0/sphinx.c:1040:6: warning: passing argument 2 of 'memset' makes integer from pointer without a cast [enabled by default] memset(vals_mva, NULL, values_mva_size); ^In file included from /usr/include/features.h:374:0, from /usr/include/stdlib.h:24, from /usr/include/php5/main/php_config.h:2418, from /usr/include/php5/main/php.h:33, from /root/sphinx-1.1.0/sphinx.c:26:/usr/include/x86_64-linux-gnu/bits/string3.h:76:1: note: expected 'int' but argument is of type 'void *' __NTH (memset (void *__dest, int __ch, size_t __len)) ^/root/sphinx-1.1.0/sphinx.c: In function 'zm_startup_sphinx':/root/sphinx-1.1.0/sphinx.c:1888:43: warning: assignment from incompatible pointer type [enabled by default] php_sphinx_client_handlers.read_property = php_sphinx_client_read_property; ^make: *** [sphinx.lo] Error 1
这里有个报错,修改 sphinx.c 第105行为:
retval = std_hnd->read_property(object, member, type TSRMLS_CC, NULL);
然后编译即可通过
4 编辑 php.ini
extension=sphinx.so