php7安装扩展trie_filter,过滤敏感词

安装libdatrie

下载地址:https://linux.thai.net/~thep/datrie/datrie.html#Download
直接编译提示

[root@localhost libdatrie-0.2.4]# ./configure
...
libtool: link: gcc -g -O2 -o .libs/trietool-0.2 trietool.o  ../datrie/.libs/libdatrie.so
trietool.o: In function `conv_from_alpha':
/usr/local/src/libdatrie-0.2.4/tools/trietool.c:170: undefined reference to `libiconv'
trietool.o: In function `conv_to_alpha.isra.2.constprop.7':
trietool.c:(.text+0x181): undefined reference to `libiconv'

[root@localhost libdatrie-0.2.4]# whereis libiconv
libiconv: /usr/local/lib/libiconv.so /usr/local/lib/libiconv.la /usr/local/lib/libiconv.a
[root@localhost libdatrie-0.2.4]# 

可以看到系统是安装了libiconv的,可以肯定是路径引用不对,查看安装帮助

[root@localhost libdatrie-0.2.4]# ./configure -h
...
Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <thep@linux.thai.net>.

解决方案:

[root@localhost libdatrie-0.2.4]# ./configure LDFLAGS=-L/usr/local/lib LIBS=-liconv

安装扩展

下载地址:https://github.com/wulijun/php-ext-trie-filter

[root@localhost php-ext-trie-filter]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-trie_filter=/usr/local/lib
[root@localhost php-ext-trie-filter]# make && make install
/usr/local/src/php-ext-trie-filter/trie_filter.c:82:34: error: unknown type name ‘zend_rsrc_list_entry’
 static void php_trie_filter_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
                                  ^
...
...
In file included from /usr/local/php/include/php/Zend/zend_API.h:28:0,
                 from /usr/local/php/include/php/main/php.h:39,
                 from /usr/local/src/php-ext-trie-filter/trie_filter.c:25:
/usr/local/php/include/php/Zend/zend_list.h:59:14: note: expected ‘struct zend_resource *’ but argument is of type ‘int’
 ZEND_API int zend_list_delete(zend_resource *res);
              ^
make: *** [trie_filter.lo] Error 1

参考:http://blog.csdn.net/xiaoai5324/article/details/62422779

PHP7版本问题,貌似要修改源码了。搜索了一圈,发现已经有人commit到了项目里面。

下载下来,直接复制过来替换掉,重新安装

[root@localhost php-ext-trie-filter]# make clean
[root@localhost php-ext-trie-filter]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-trie_filter=/usr/local/lib
[root@localhost php-ext-trie-filter]# make && make install
...
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

安装成功,感谢作者和大神们,拯救了我们这些小白。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值