smthbbs 首页导读安装说明
1.一些约定的说明 $(BBSHOME) 表示 bbs 的安装目录,本文中指定为/home/bbs
$(WWWHOME) 表示 apache 设定的DocumentRoot,在本文中指定为 /var/www/html
$(SRCDIR) 表示存放 smthbbs 源代码的目录,可自己设定一个, 例如放在
自己 home目录的某个子目录下
$(SITE) 表示configure的时候,
configure --enable-site=后面的那个参数的 名字,也就是指定的站点
配置文件的名字
2.适用本文操作的对象
您的smth的telnet & www方式已经安装成功,可以正常运行,通过WWW方式可以正常访问您
的bbs,只是您的bbs的首页导读没有内容或者出现Warning: domxml_open_file().....等
警告。 如果您的smth系统的telnet 或者www方式安装有任何问题,请参考smth源码包下
的安装文档。
3.首页导读安装步骤
3.1 复制所有的mainpage文件及其css文件到apache的DocumentRoot cp
$(SRCDIR)/bbs2www/xml $(WWWHOME)
3.2 修改(WWWHOME)/mainpage.php。主要是去掉上面smth的logo,Cernet的广告,
还有页面底部的ICP字样等等,其他内容尽量和源代码当中的mainpage.php保持一致,当然
页面的表格字体颜色背景等等尽可以发挥自己的能力进行美化:)
3.3 修改$(SRCDIR)/bbs2www/site/$(SITE)/下面的文件 并且让他们生效
3.3.1 site.php主要修改以下几个部分
define("MAINPAGE_FILE","mainpage.html");//注:此处修改的具体情况请参考后文4
$section_nums = array{...略 //根据你的站台的分区情况进行修改
$section_names = array(...略 //根据你的站台的分区情况进行修改
3.3.2 frame.html guest-frame.html menu.html
建议除了修改掉<title>...</title>当中的“水木清华”字样其他的尽量不要修改,
除非您明确知道您修改的地方有什么作用。此项修改非必要,如果不作修改,
对生成首页导读没有什么影响。
3.3.3
为自己的站点生成一个图标文件favicon.ico,也放在此目录。此项修改非必要,
如果不作修改, 对生成首页导读没有什么影响。
3.3.4 让以上3.3.1~3.3.3修改生效。 两种方法, cp
$(SRCDIR)/bbs2www/site/$(SITE)/* $(WWWHOME) -f
或者,如果您在configure的时候 有做过这样的设定
configure --enable-site=$(SITE) 那么直接在$(SRCDIR)/bbs2www/
输入命令 make install
此步骤有可能需要root权限,如果您没有做过 chown bbs.bbs -rf $(WWWHOME)
3.4 为首页导读生成必要的xml文件
3.4.1首页导读各元素和xml文件的对应关系简表
所有需要的xml文件都是保存在$(BBSHOME)/xml/目录的,如果您的站台没有此目录
请以bbs帐号在$(BBSHOME)生成此目录。
所有生成xml需要执行的程序,都保存在$(BBSHOME)/bin,源文件在$(SRCDIR)/local_u
tl
以下为了描述方便,不再指明xml和程序的目录。
首页导读元素 需要的xml文件 mainpage.php当中相关函数 生成此xml需执行的程序
推荐文章 commend.xml gen_commend_html() genhot
本日热点话题 day.xml gen_hot_subjects_html() poststat
分类精彩讨论区 day_sec*.xml gen_sections_html poststat
gen_sec_hot_subjects_html()
新开版面 newboards.xml gen_new_boards_html() gennewboard
推荐版面 rcmdbrd.xml gen_recommend_boards_html() 手工写的没有程序
人气排名 board.xml gen_board_rank_html() usage
今日祝福 bless.xml gen_blessing_list_html() poststat
3.4.2 crontab当中有关首页导读的部分
参考$(SRCDIR)contrib/cron.SMTH,在bbs帐号的crontab里面调用各程序生
成以上xml的部分如下所示。请添加到您的bbs帐号的crontab里面。注意以
下不是完整的bbs帐号的crontab,只是和首页导读相关部分的内容,完整的
crontab列表请参考$(SRCDIR)/contrib/cron.SMTH。时间以及程序的完整路径等
内容请根据自己站台的情况进行调整。
# 定时更新推荐文章
0,10,20,30,40,50 * * * * /home/bbs/bin/genhot
# 每小时 59 分执行热门话题统计; 1 分 html 化
59 * * * * /home/bbs/bin/poststat /home/bbs
# stiger:新的十大统计
59 23 * * * rm -f /home/bbs/tmp/Xpost/*
# 每天早上 4:33 统计各版使用状况0
33 4 * * * /home/bbs/bin/usage 0 >/dev/null 2>&1
36 4 * * * /home/bbs/bin/usage 1 >/dev/null 2>&1
至于gennewboard,如果您的站台经常开新版,那么把它加入crontab;如果不经
常开新版,在bbs系统上开完新版之后,用bbs帐号手动执行一下也可以。
推荐文章需要在站上开一个版,Recommend版,然后版主在版面上推荐的文章前面
按;3,此文章进入Recommand版,站务在Recommend版需要推荐的文章前面按g就可
以使得此文章出现在web首页导读的推荐文章了。
3.4.3手工生成rcmdbrd.xml
编辑,$(BBSHOME)/xml/rcmdbrd.xml,按照以下格式,感谢windinsn提供
<?xml version="1.0" encoding="GBK"?>
<RecommendBoards>
<Board><EnglishName>这里写版面的英文名</EnglishName></Board>
<Board><EnglishName>...</EnglishName></Board>
...
<Board><EnglishName>...</EnglishName></Board>
</RecommendBoards>
至此,所有的首页导读的元素都已经生成完毕,在浏览器打开
http://yoursite./mainpage.php 应该可以得到看到首页导读的各元素。
4 mainpage.php vs mainpage.html
4.1 到底选择默认首页为mainpage.html 还是 mainpage.php?
前文在site.php曾经提到定义define("MAINPAGE_FILE","mainpage.html")
其含义为定义默认的首页导读页面为mainpage.html。如果定义默认导读首页页面为
mainpage.php,也可以得到正确的首页导读。但是考虑到mainpage.php为php脚本解
释语言而且在每次客户端请求mainpage.php的时候,都需要解析各xml文件,为了减
少IO减少站台的负荷,(//这一段也许偶说的不准确,欢迎拍砖:) ) 提倡使用静
态的mainpage.html作为默认的首页导读页面,同时为了保证首页导读的实事性,
应该用wget自动定时从mainpage.php更新mainpage.html
4.2自动定时更新mainpage.html
将以下内容添加到bbs帐号的crontab,即可自动从mainpage.php生成mainpage.html
间隔时间可以自行调整。以下命令为一行,不要折行。
#每6分钟自动更新一下/var/www/html/mainpage.html
*/6 * * * * /usr/bin/wget -Y off -t 0 -O /var/www/html/mainpage.html
http://127.0.0.1/mainpage.php &>/dev/null
5 FAQ
Q:我在smth1.2的源码包里面找不到xml/目录 或者 fb2k-v2目录 或者 ....文件
A:有可能smth1.2的打包文件遗漏了这些目录或者文件,请下载smth每日打包文件,如果找
不到,请参考smth安装文档,用cvs获得这些目录以及文件。
Q:我的首页导读有乱码
A:如果你是在smth1.2发布之前的做过首页导读编辑过自己的mainpage.php,那么需要根据
cvs或者snap包里面最新的mainpage.php vimdiff一下,同步到最新的mainpage.php。
smth1.2对mainpage.php做过一些编码的修改。
Q:我编辑好了自己站台的php,html,图片文件,但是当我cvs同步到最新的水母代码,执行
make install之后,我做的修改都不见了,又变成水木默认的文件了,如何保证我修改过的
php html css 图片等文件在下一次安装的时候不被smthbbs默认的文件覆盖?
A:自己做过修改的文件最好放在$(SRCDIR)/bbs2www/site/$(SITE)/目录,而且最好给你的
站台起一个和cvs里面其他站台不重复的名字,configure的时候
configure --enable-site=yourname,这样make install就不会发生自己修改的文件被覆
盖的问题。yoursite目录内的各文件可以从fb2k-v2 copy得到。不过请注意,如果采用这
种方法,如果cvs里面修改了mainpage.php,fb2kv2.h等文件,最好同步修改您的
mainpage.php,yourname.h等等文件。
Q:我按照以上操作做过了,但是我的首页导读还是有好多内容没有出来。
A:crontab里面执行的程序有时候需要依赖超过一天的时间来生成,我自己的站台就是当
天只有热门话题,睡了一觉起来,到了第二天,发现其他内容都出来了:),所以如果有
问题,请耐心等待超过24小时。同时期待更权威的解答和更完美的解决办法,hoho
--
FROM 218.80.240.*