产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] 关于站点运行scws中文分词故障的问题?[已经解决]

hcoder
铁牌会员
131.00 价值分

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]
;
; 注意请检查 php.ini 中的 extension_dir 的设定值是否正确, 否则请将 extension_dir 设为空,
; 再把 extension = scws.so 指定绝对路径。
;
extension = scws.so
scws.default.charset = gbk
scws.default.fpath = /usr/local/scws/etc
2、词典文件在/usr/local/scws/etc 这个路径下,目录内的文件主要是词典文件跟个配置文件。如下图:




3、测试的分词代码如下:
<?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();
?>
问题来了:就是这样的测试代码,我放在通过AMH主机管理系统建立的站点目录下,用域名访问不能正确分词,分出的词是一个一个的单字,现在已经确定是没有加载词典造成的,也就是说 访问不到PHP.INI配置文件里面的路径/usr/local/scws/etc 下的字典文件 dict.utf8.xdb ;但是,当我把测试文件转移到 管理面板的目录下 /home/wwwroor/index/web/ 下时,直接通过管理面板的访问路径来访问测试的PHP文件,居然能正确分词??!!!

所以,我怀疑可能是有两种情况:
1、通过管理面板建立的站点目录,出于安全机制的限制不允许访问PHP.INI文件,导致加载不到词典文件;而面板管理面板则没有在这种限制;
2、通过管理面板建立的站点对服务器绝对路径进行了某种限制处理,不允许访问非目录下文件,而管理面板目录则没有这个限制;


这是两种猜测,希望高人解答。。。


2014-11-28 11:53:25 1

amysql
创始人
16530.81 价值分

安全模式的根目录是/web
估计是读不到配置文件。

切换下虚拟主机到兼容模式试试。
  支持 (0分)  反对 (0分)
回复  2014-12-02 11:21:21 2

AMH面板 - 好用高效低占用、安全可靠极稳定

hcoder
铁牌会员
131.00 价值分

引用:
amysql 发表于 2014-12-2 11:21
安全模式的根目录是/web
估计是读不到配置文件。



完美解决,确实是应为模式的问题,调试两天没弄好,谢谢老大指引,留贴备用,希望再用到的人可以看到。

不过还有个问题就是:安全模式跟兼容模式有啥区别,切换到兼容模式不会有啥安全隐患吧?
  支持 (0分)  反对 (0分)
回复  2014-12-04 08:29:22 3
 1  (总1页)
AMH社区列表
用户服务中心