AMH 社区首页
AMH社区 - 开放自由有价值的社区
[求助帖] 关于站点运行scws中文分词故障的问题?[已经解决] |
|
---|---|
hcoder |
hcoder 发表于 2014-11-28 11:53:25
本帖最后由 hcoder 于 2014-12-4 08:29 编辑
本人安装的是AMH管理面板,目前需要在站点下运行个分词扩展(SCWS:http://www.xunsearch.com/scws/index.php),已经按SCWS的安装说明安装上了,并且也都测试成功,但是分词用在站点目录下就有问题,不能正确的加载词典,造成分词失败,详细如下: 1、安装SCWS需要在PHP.ini中 配置词典路径,配置文件如下: [scws] 2、词典文件在/usr/local/scws/etc 这个路径下,目录内的文件主要是词典文件跟个配置文件。如下图:; ; 注意请检查 php.ini 中的 extension_dir 的设定值是否正确, 否则请将 extension_dir 设为空, ; 再把 extension = scws.so 指定绝对路径。 ; extension = scws.so scws.default.charset = gbk scws.default.fpath = /usr/local/scws/etc 3、测试的分词代码如下: <?php 问题来了:就是这样的测试代码,我放在通过AMH主机管理系统建立的站点目录下,用域名访问不能正确分词,分出的词是一个一个的单字,现在已经确定是没有加载词典造成的,也就是说 访问不到PHP.INI配置文件里面的路径/usr/local/scws/etc 下的字典文件 dict.utf8.xdb ;但是,当我把测试文件转移到 管理面板的目录下 /home/wwwroor/index/web/ 下时,直接通过管理面板的访问路径来访问测试的PHP文件,居然能正确分词??!!!$so = scws_new(); $so->set_charset('gbk'); // 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件 $so->send_text("我是一个中国人,我会C++语言,我也有很多T恤衣服"); while ($tmp = $so->get_result()) { print_r($tmp); } $so->close(); ?> 所以,我怀疑可能是有两种情况: 1、通过管理面板建立的站点目录,出于安全机制的限制不允许访问PHP.INI文件,导致加载不到词典文件;而面板管理面板则没有在这种限制; 2、通过管理面板建立的站点对服务器绝对路径进行了某种限制处理,不允许访问非目录下文件,而管理面板目录则没有这个限制; 这是两种猜测,希望高人解答。。。
点赞,加油! (0分)
2014-11-28 11:53:25 1
|
amysql |
安全模式的根目录是/web
估计是读不到配置文件。 切换下虚拟主机到兼容模式试试。
回复
2014-12-02 11:21:21 2
AMH面板 - 好用高效低占用、安全可靠极稳定 |
hcoder |
完美解决,确实是应为模式的问题,调试两天没弄好,谢谢老大指引,留贴备用,希望再用到的人可以看到。 不过还有个问题就是:安全模式跟兼容模式有啥区别,切换到兼容模式不会有啥安全隐患吧?
回复
2014-12-04 08:29:22 3
|