Lilina v0.7修补说明

[引子] Lilina的最新版本v0.7中文化仍然存在一定的问题。Deminy综合先前对其所做的测试和修改,总结如下6点供参考。

1. 该软件使用utf-8作为页面编码。如果要在页面标题中使用中文标题,应对conf.php文件内相关设定做如下类似修改:

// 将gb2312编码的文字转换成utf-8编码
$SITETITLE = mb_convert_encoding("Deminy收藏的RSS内容", "utf-8", "gb2312") ;

2. 由于页面程序执行过程可能很长(并因此导致超时),因此最好在conf.php文件中增加一行

set_time_limit(0); // 允许程序一直执行下去

3. 文件index.php对MAGPIE_CACHE_AGE的重新定义无效,因为此前在conf.php已经定义过了。(此条可能有待商榷)
正确的一种修改方式应该是在conf.php中修改相应部分为2

if (empty($_GET[force_update]) && empty($_SERVER['argv'][1]))
define('MAGPIE_CACHE_AGE',60 * 60 * 3);
else
define('MAGPIE_CACHE_AGE', 1);

4. 该软件使用一个第三方PHP类Snoopy,版本号v1.0。Snoopy.class.inc文件的curl相应变量($curl_path)需要根据服务器配置重新设定。注意总共有2个Snoopy.class.inc文件:一个在./extlib/下,另外一个在./inc/extlib/.下。

6. 在./conf.php中增加一行
define('MAGPIE_FETCH_TIME_OUT', 360);

7. 经过上一步的修改后,并不能保证./index.php?force_update=1(强制更新RSS内容)能够有效地通过浏览器访问 (但可以通过命令行运行该程序,例如命令“php index.php force_update=1”)。

不能通过浏览器有效访问的原因是程序执行时间过长,导致超时。有几个地方可能中断程序执行:客户端浏览器的最长链接时间限制、服务器端服务器允许的程序运行最长时限、Snoopy程序中的fsockopen连接(用于读取RSS内容)超时。另外,如果以上都未超时,某些HTTP协议的具体实现方式也可能规定在指定时限内没有数据传输则断开HTTP连接。

如果仍然出现访问超时的情形,建议用户尝试使用以下做法避免超时(但暂不能明确确定具体是哪一种原因导致超时2):

7.1 Snoopy.class.inc中将$_fp_timeout设一个比较大的值,例如180(基本没有什么效果);

7.2 去处那些访问困难的RSS种子,或者将其移到最后(无可奈何之举);

7.3 使用cron脚本通过命令行执行“php index.php force_update=1”,而不要通过浏览器(最好的办法)。

[注1] $_SERVER['argv'][1]参数是为了便于用命令行方式强制更新,主要用于cron。此处写法非常简略。

[注2] 如果在页面执行的时候能够不断输出HTML,则不会出现超时的现象。

标签:

类别:

添加新评论

友情提醒:您的言论自由在本站会得到充分保证;不过,由于广告留言等猖獗,因此本站的内容过滤系统有可能会暂时屏蔽您新发的留言或评论。不便之处,希望理解。