PHP5.5及PHP7安装SCWS-1.2.3高效分词组件(上)

前言:
为了折腾PHP分词从Windows版本到Linux版本爬了一个又一个的坑,SCWS 中文分词目前已经很快地与时俱进——立马支持了性能高出老版PHP整整3倍的PHP7,同时更新了2016版词库。本文主要列出一个安装纪要及部分困惑点的解决方法,供大家更方便的使用SCWS-1.2.3分词工具,避开坑与雷,同时也感谢作者的无私奉献,有你网络更精彩!

环境:
CentOS7.0 64bit
Web环境为LNMP
基于yum扩展源remi安装的Php7.0(php70-php-fpm)和Php5.5(php55-php-fpm)两PHP版本共存环境(需要了解如何安装共存环境的将另外发布攻略)

一、工具本身的安装

1、在官方网站下载SCWS 中文分词(http://www.xunsearch.com/scws/download.php
Linux系的系统直接用下面的命令操作(本人用的是CentOS7 64bit):
wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2
2、 解开压缩包
[root@AY8152859Z ~]# tar xvjf scws-1.2.3.tar.bz2

3、 进入目录执行配置脚本和编译
[root@AY8152859Z ~]# cd scws-1.2.3[hightman@d1 ~/scws-1.2.3]$ ./configure --prefix=/usr/local/scws ; make ; make install

注:这里和通用的 GNU 软件安装方式一样,具体选项参数执行 ./configure --help 查看。
常用选项为:--prefix=<scws的安装目录>

4、 顺利的话已经编译并安装成功到 /usr/local/scws 中了,执行下面命令看看文件是否存在
[root@AY8152859Z ~]# ls -al /usr/local/scws/lib/libscws.la
5、 试试执行 scws-cli 文件看有没有返回正确的信息

[root@AY8152859Z ~]#  /usr/local/scws/bin/scws -h
scws (scws-cli/1.2.3)
Simple Chinese Word Segmentation - Command line usage.
Copyright (C)2007 by hightman.
...

6、用 wget 下载并解压词典,或从主页下载然后自行解压再将 *.xdb 放入 /usr/local/scws/etc 目录中

[root@AY8152859Z ~]# cd /usr/local/scws/etc
[root@AY8152859Z ~]# wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2
[root@AY8152859Z ~]# wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2
[root@AY8152859Z ~]# tar xvjf scws-dict-chs-gbk.tar.bz2
[root@AY8152859Z ~]# tar xvjf scws-dict-chs-utf8.tar.bz2

理论上SCWS-1.2.3分词工具安装完毕,写C的同鞋可以写段官方提供的小程序测试一下分词效果。

二、SCWS-1.2.3分词工具的Php插件安装

首先,让我们来了解下官方在安装前的准备工作中模糊提到的几个概念吧:

autoconf:
是一个shell脚本的工具,可以自动地配置软件源代码包以适应多种UNIX类系统。由autoconf生成的配置脚本在运行的时候不需要用户的手工干预;通常它们甚至不需要手工给出参数以确定系统的类型。其中autoconf需要用到m4,便于生成脚本。
版本检测:

# autoconf --version
autoconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

automake:
是一个从文件Makefile.am自动生成Makefile.in的工具。每个Makefile.am基本上是一系列make的宏定义。生成的Makefile.in,服从GNU Makefile标准。为了生成Makefile.in,automake还需用到perl(它本身就是一个perl程序)。
版本检测:

# automake --version
automake (GNU automake) 1.13.4
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Phpize:
phpize是用来扩展php模块的,通过phpize可以热编译php的PECL扩展模块 。一般情况是编译php时忘记添加某扩展,后来想添加扩展,而你又不想删除目录重装PHP的话,就可以使用phpize,比如你想在原来已经编译好可以正常运行的php中加入memcached或者别的扩展模块等。
英文好的朋友可以参看官方文档:http://php.net/manual/en/install.pecl.phpize.php
幸运的是CentOS7.0 64bit系统已经自带了上述两个工具,如何安装上述两款工具我就不在此展开了,感兴趣的朋友可以检索下《Linux下的Autoconf和AutoMake》这篇文章,那么接下来就只有Phpize这个问题了。

phpize在哪里?
现在的状况是本机的Php坏境是用的yum扩展源Remi直接安装的,当时的安装命令用的是:
`# yum --enablerepo=remi install php55-php-fpm~和 ~# yum --enablerepo=remi install php70-php-fpm~
上面两个包安装时会自动附加运行PHP时必要的依赖安装文件,相当于PHP的极简安装包,但是正是这个极简安装包在我们需要做扩展的时候就成了障碍了。
phpize一般在PHP安装目录的bin/目录下,但是,当我定位到安装目录/opt/remi/php55/root/时并没有发现bin目录里有任何文件或文件夹,Php7的情况同样如此,目录/opt/remi/php7/root/bin/下面没有任何东西。因此我在想Remi源这么多用户因该是有解决方案的,所以检索了Remi源下所有的与之相关的扩展包的情况,果然有发现:

php55.x86_64 : Package that installs PHP 5.5
php70.x86_64 : Package that installs PHP 7.0

我试着安装了上面两个包,这两个包安装后并不会影响到原来安装和配置好的PHP环境,且解决了没有phpize的问题。
安装命令如下(Php5.5):
# yum --enablerepo=remi install php55.x86_64
或者你如果是Php7.0的话就用如下命令:
# yum --enablerepo=remi install php70.x86_64

补充:
上面解决了没有Phpize的问题,但在编译生成插件时还是出现了错误提示需要php-devel版本的包,因此,我又安装了下面的Php-Devel包,在没有破坏原有Php环境的前提下无缝地、圆满地解决问题。不过,理论上讲应该用不着装上面的php55.x86_64的包,只用装php55-php-devel.x86_64这个就可以了,鉴于时间关系只能以后再试了。

php55-php-devel.x86_64 : Files needed for building PHP extensions
php70-php-devel.x86_64 : Files needed for building PHP extensions

安装命令如下(Php5.5):
# yum --enablerepo=remi install php55-php-devel.x86_64
如果你是Php7.0的话就用如下命令:
# yum --enablerepo=remi install php70-php-devel.x86_64
好了,这里讲完了安装scws分词工具php插件的安装前提,接下来我们将开始正式用phpize编译安装Php的SCWS插件了!

Tag:Php分词, SCWS, 分词技术
发布时间:2015年10月21日
博客被黑,挪窝简书安家……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容