x2无法获取标签的问题排查
之前排查过一个站点,出现此问题,记得发现是file读取链接失败,具体原因当时没有深究。
恰巧今天又有同事转了一个此类的问题,便细究了下原因。
x2的获取标签处理在source\module\forum\forum_relatekw.php文件。
在文件中做断点处理,发现问题出在下面的代码:
$data = @implode('', file("http://keyword.discuz.com/related_kw.html?ics=".CHARSET."&ocs=".CHARSET."&title=$subjectenc&content=$messageenc"));
分析了下发现是file读取远程连接返回了false。
在网上搜索了下file读取失败的原因,没找到相关的问题。
实在想不出来方法的时候,咨询了下同学,告诉我在文件头加上error_reporting(E_ALL),看下报错信息。
加了之后,输出如下报错信息:
Warning: file(): URL file-access is disabled in the server configuration in 路径地址
根据报错信息在网上搜索了下,发现是由于php.ini文件里的allow_url_fopen设置导致。
解决方法:
找到php.ini文件,搜索如下代码
allow_url_fopen = Off
将其中的Off改为On,然后重启服务器即可。
通过这次排查,也学到一个查错的方法,当你找不到错误信息的时候,在文件开头加上error_reporting(E_ALL),php本身就会告诉你相关的报错信息。