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,则不会出现超时的现象。
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,则不会出现超时的现象。
添加新评论
友情提醒:您的言论自由在本站会得到充分保证;不过,由于广告留言等猖獗,因此本站的内容过滤系统有可能会暂时屏蔽您新发的留言或评论。不便之处,希望理解。