分享
 
 
 

smthbbs 安装全攻略

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

折腾了一个月,水木的论坛终于装得差不多了,在这期间居然让我碰上了前所未有的事

件。庆幸自己在3月初把水木精华区关于安装的文档都保存了,否则真不知道要装到什么时候

。现在赶快把安装步骤写下来,给想安装的朋友留点参考。

我用的是FC3的系统,这里就以此为例。安装前请用rpm -qa xxx命令检查系统所需的软

件包是否已安装。需要的软件包有:zlib,autoconf,automake,libtool,libxml2,

libiconv,libjpeg,libjpeg-devel, libpng,libpng-devel, freetype2,gd,gd-

devel,openssl,gmp-4.X,这些系统盘就有,装全就是了。

下面安装libesmtp,首先下载到源代码包,然后执行如下命令:

tar xzvf libesmtp-1.0.tar.gz //解压libesmtp

cd libesmtp-1.0 //进入libesmtp源码目录

./configure --disable-pthreads

make

make install

这样libesmtp就安装成功了。

安装mysql没有什么特别要求,按mysql文档安装即可。

现在做一些约定:

$(BBSHOME) 表示 bbs 的安装目录,缺省为 /home/bbs,在本文中指定

为/usr/local/bbs

$(WWWHOME) 表示 apache 的安装目录,在本文中指定为 /usr/local/www

$(PHPHOME) 表示 php 的安装目录,在本文中按缺省的 /usr/local

安装apache和php:

我下载到的是httpd-2.0.52和php4.3.10,以此为例。需要注意的是,apache直接编译安装后

最大上线人数为256,修改httpd.conf也没用,我经过查资料发现这个办法,就是修改源代码

。修改源代码目录中的/include/httpd.h,加上下面的条件定义语句:

#ifdef HARD_SERVER_LIMIT

#define HARD_SERVER_LIMIT 10000

#endif

这样就可以把限制提高到10000人。修改完毕就可以编译了(直接用命令表示):

cd httpd-2.0.52 //进入源代码目录

./configure --prefix=/usr/local/www --enable-module=so --enable-module=ssl

make

make install

cd ../php4.3.10

./configure --with-apxs2=/usr/local/www/bin/apxs --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-dom --with-gd --with-freetype-dir=/usr/lib --with-png-dir --with-iconv --with-jpeg-dir --with-zlib --enable-track-vars

make

make install

OK!安装前的准备终于做好了!!!

现在可以安装smthbbs了。动手前还得修改站点定制文件,这里用的是fb2k-v2,在site

目录下,注意验证fb2k-v2.h中BBSUID 和 BBSGID 与本地系统的 bbs 用户的 uid gid 是否一

致,如果不一致请调整到一致。其余的就是你的站点的一些参数,注意修改。

下面开始编译:

./configure --prefix=/usr/local/bbs --enable-site=fb2k-v2 --with-

www=/usr/local/www --with-php=/usr/local/include/php --with-mysql --enable-ssl

make

make install

make install-home

chown -R bbs:bbs /usr/local/bbs

如果一切顺利,至此 smthbbs、apache 和 php 都已经安装完毕。

运行前配置:

web方式:

apache 的配置文件为 /usr/local/www/conf/httpd.conf,编辑该文件,加入

AddType application/x-httpd-php .php

修改 Port 参数为 80,把 User 和 Group 参数都修改为 bbs。

请把 KeepAlive 参数设为 Off.

将 smthbbs 源代码目录 bbs2www/xml 下的文件复制到 /usr/local/www/htdocs。

php 的配置文件可以从 php 源代码目录得到,将 php.ini-dist 复制为

/usr/local/lib/php.ini,然后编辑 php.ini 文件,将 short_open_tag 的值修改为

Off。

运行 smthbbs

cd /usr/local/bbs/bin

./miscd daemon

./bbslogd

./bbsd -p 23

然后 telnet localhost,注册 SYSOP 和 guest 两个帐号。

guest的密码随便写了.

运行 apache

/usr/local/www/bin/apachectl start

到目前为止,论坛已经可以运行了,但还有许多工作要做!:(

修改分类讨论区:

这里直接借用前辈的文档了!:-)

修改分类讨论区

修改站点的分类讨论区一般来说有两个步骤,一是需要修改站点的配置文件,二是需

要改动代码。配置文件的修改主要和用户界面有关,而源代码的修改主要和统计程序以及

站务管理有关。

6.1 修改站点配置文件

需要改动的文件是 ~bbs/etc/menu.ini 和 web 主目录下面的 site.php。下面是

menu.ini 分类讨论区子菜单的一个简略形式,后面的讲解将都以此为例:

#------------------------------------------------------------------

%menu M_EGROUP

title 0, 0, "分类讨论区选单"

screen 3, 0, S_EGROUP

@EGroups 10, 22, 0, "0BBS", "(0) 本站系统 [本站]"

@EGroups 0, 0, 0, "1USA", "(1) 人在美国 [校园][创业]"

@EGroups 0, 0, 0, "2GoAbroad", "(2) 大话西游 [留学][学校][团体]"

@BoardsNew 0, 0, 0, "New", "(N) 阅读新文章"

!.. 0, 0, 0, "Exit", "(E) 回到主选单"

%

EGROUP0 = "a"

EGROUP1 = "b"

EGROUP2 = "c"

#------------------------------------------------------------------

这里需要注意的地方是:分类讨论区菜单的第 5 个参数的第一个字母是序列号,这个序

列号通过下面的 EGROUP? 来定义分区代号(一般是一个字母或数字)。比如这里的第一

个分类讨论区“本站系统”,序列号是 0,分区代号是 a(由 EGROUP0 定义)。注意:

序列号只是 menu.ini 内部引用使用,没有任何别的用处!后面的修改,以及新建和修改

讨论区都只需要知道分区代号即可,在这个例子中,三个分区代号分别是 a b c。

一般可以把序列号和分区代号设置成一样。

改完 menu.ini 参考 4.3 节使之生效。(站务在主菜单按~)

另一个需要修改的配置文件是 site.php,上面的例子就需要在 site.php 内用下面

的代码:

$section_nums = array("a", "b", "c");

$section_names = array(

array("本站系统", "[本站]"),

array("人在美国", "[校园][创业]"),

array("大话西游", "[留学][学校][团体]")

);

6.2 修改源代码

修改分类讨论区需要修改站点的 site.c 和 site.h 文件。不推荐直接修改

default.h 和 default.c 文件。

smthbbs 系统有一个 ~bbs/0Announce/groups/ 目录,这是版面精华区的总目录,该

目录下存放所有版面的精华区。一般站点希望版面分区结构和精华区分区结构完全一致。

以上面的例子为例,一共三个分类讨论区,那么讨论区精华的总目录下应该有三个目录,

我们把它们分别取名为 GROUP_0 GROUP_1 GROUP_2。修改分类讨论区往往会需要修改精华

区结构,所以修改完分类讨论区之后站务应该进入精华区调整,比如建立目录,修改

.Names 文件等。

源代码的修改首先是 site.h 里面的 SECNUM 常数,它应该定义为分类讨论区数量:

#define SECNUM 3

剩下的修改都在 site.c 里面了,为此确保 site.h 没有定义 USE_DEFAULT_SECODE。

site.c 内一共有四个常量和分类讨论区有关,请注意常量的类型定义绝不能改。

const char seccode[SECNUM][5] = {"a", "b", "c"};

这个是分区代号,部分统计程序需要用到。

const char * const explain[] = {

"本站系统",

"人在美国",

"大话西游",

NULL

};

分类讨论区的区名,web 下的站点管理会用到。最后的 NULL 不能漏!

const char * const groups[] = {

"GROUP_0",

"GROUP_1",

"GROUP_2",

NULL

};

精华区总目录下相应分区的目录名,开版和修改版面设定的时候会用到。

最后的 NULL 不能漏!

const char secname[SECNUM][2][20] = {

{"本站系统", "[本站]"},

{"人在美国", "[校园][创业]"},

{"大话西游", "[留学][学校][团体]"},

};

分类讨论区说明,就按照这个格式依样画葫芦好了。实际上只有 secname[i][0] 才

真正在程序中用到,目的是开版和修改版面精华区位置的时候提示选择用。

另一个需要注意的问题是,每个版面的精华区目录位置都是完全独立储存的,和上面

的修改毫无关系。所以像上面的例子,如果我们决定把 GROUP_0 的目录名改掉,那样的

话不但要进行类似上面所述的修改,而且精华区位于 GROUP_0 目录内的版面都应该要进

入系统管理菜单重新设定讨论区,选择移动精华区位置,指定新的目录。

修改源代码之后需要重新编译安装 BBS 程序。可以看到源代码的修改只和管理操作

和统计程序相关,所以在实际操作中,如果是减少分区数目或者修改分类讨论区说明,可

以仅调整 menu.ini 和 site.php,而不修改源代码。

然后是生成首页导读必须的文件,继续使用前辈的成果:

为首页导读生成必要的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 应该可以得到看到首页导读的各元素。

现在已经基本完成了,但为了简化注册过程,我取消了发激活邮件的过程,web填写密码

并直接生成注册单,谢谢前辈的文档,我就偷懒了!:>

bbs2www/html/bbsreg.html

增加两个<input

<input type="password" name="pass1">

<input type="password" name="pass2">

bbs2www/html/bbsreg.php

首先判断$_POST["pass1"]和$_POST["pass2"]一不一样,不一样就直接html_error_quit

另外我记得密码的位数必须是5-39位(inclusive),这个最好限定一下。

我不确定出了这个范围会不会有问题

$password=bbs_findpwd_check("","",""); 改成

$password = $_POST["pass1"] 赫赫,bbs_findpwd_check是一个自动产生密码的垃圾函数

从$mailbody开始到那个发送邮件失败的http_error_quit都不要了

bbs_createregform函数调用的最后那个参数,改成FALSE,这个非常关键!!

这样做就会填完注册单站务就可以在系统管理菜单->审批注册单看到。

后面的提示稍微改改,可能就差不多了。

另外你的src/site.h最好是这样的:

#define REGISTER_WAIT_TIME (0)

#define REGISTER_WAIT_TIME_NAME "马上"

这两个smth默认好像是48小时,比较bt。这样改能保证telnet立即能填写注册单。

我按上面的方法修改后还是有一点问题,就是被拒的用户在web里重新填写注册单站务却看不

到,琢磨了半天,终于搞定。修改bbs2www/html/bbsfillform.php,把里面bbs_createregform

函数最后一个参数也全改成FALSE,这样就OK了。

好了,终于安装好了,累死我了!至于blog,我安装后还是有问题,而现在没法上水木提

问了,只好先不要了。;(

至于我装的站台,教育网用户可以到http://202.195.144.15看一看,公网无法访问,大家都知道原因的吧!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有