首页 » 站长随笔 » 其它资料 » 浏览内容

RSS FEED 聚合程序 Gregarius 0.5.3 的安装问题


2006-02-24 09:59:41 10,172 2 发表评论 字体: 作者:C.K.
标签: rss聚合程序

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

我在 http://gregarius.net/nightlies/ 下载了一个 RSS FEED 聚合程序 Gregarius 0.5.3。

在安装使用过程中出现一个奇怪的问题。

我用的空间是合租空间,将 http://feed.linji.cn 绑定到子目录 lxna 。

前台程序可以正常显示的网站:

http://www.nigerianbloggers.com/

http://www.bendblogs.com/

http://rss.gregarius.net/

1.奇怪问题:

如果将它放在 lxna 的子目录下,如 RSS ,用网址 http://feed.linji.cn/rss ,访问起来是没有问题的,但如果将它放到  lxna,用 http://feed.linji.cn 来访问,前台程序显示就有问题,后台是没有问题的 http://feed.linji.cn/admin

2. 查看源代码,发现程序中多出一个  符号,造成路径不正常,所以前台程序无法正常显示。

/themes/lilina/web/css/layout.css

3. 我查看了程序,发现问题是出在 util.php 上,将以下程序中的 dirname($_SERVER['PHP_SELF'] 中的 'PHP_SELF' 改为 REMOTE_HOST ,前台程序 http://feed.linji.cn 马上可以正常显示,但是后台 http://feed.linji.cn/admin 不能正常显示

/**
* Returns the relative path of the install dir, e.g:
* http://host.com/thing/ -> “/thing/”
* http://host.com/ -> “/”
*/
function getPath() {
static $ret;
if ($ret === NULL) {
$ret = dirname($_SERVER['PHP_SELF']);
if (defined('RSS_FILE_LOCATION') && eregi(RSS_FILE_LOCATION.”$”, $ret)) {
$ret = substr($ret, 0, strlen($ret) – strlen(RSS_FILE_LOCATION));
}
if (substr($ret, -1) != “/”) {
$ret .= “/”;
}
}
return $ret;

}
$dummy = getPath();

4. 上面程序分析:

4.1 dirname($_SERVER['PHP_SELF']);

获取网址中的目录部分,如 http://feed.linji.cn/admin/ 结果就是 /admin/

                              如 http://feed.linji.cn/ 结果就是 /

4.2 if (defined('RSS_FILE_LOCATION') && eregi(RSS_FILE_LOCATION.”$”, $ret)) {
$ret = substr($ret, 0, strlen($ret) – strlen(RSS_FILE_LOCATION));
}

'RSS_FILE_LOCATION'  前台没有定义,所以这部分结果是 false

所以就只剩下以下代码是有效的

4.3
if (substr($ret, -1) != “/”) {
$ret .= “/”;

substr($ret, -1) != “/”) 这个主要是判断  dirname($_SERVER['PHP_SELF']); 最后的字符是否为 ' / '

它的结果应该是 ' / '

现在已经找到解决方法

网站统计 Statistics

  • 创建时间: 2005年1月3日 距今5069 天
  • 日志总数: 2461
  • 评论总数: 630
  • 标签总数: 654
  • 链接总数: 273
  • 最后更新: 2018-8-31 17:57:04
  • 您是本站第 14180254 位访客

广告区 Guǎng Gào