看板SetupBBS
标 题[转录][beta] Maple BBS 之设定篇
发信站猪头纪公园 (Mon Oct 20 14:21:24 2003)
转信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.csie.nctu!news.cs.nthu!PigHe
※ [本文转录自 shakalaca 看板]
作者: shakalaca (Lord Of The BBS :D) 看板: shakalaca
标题: [beta] Maple BBS 之设定篇
时间: Sun Oct 12 20:17:49 2003
摩拳擦掌来架站 (Maple BBS 之设定篇)
===================================
※ 版本
2003.10.12 初稿
※ 作者
Jian-Zhou Huang <
[email protected]>
※ 参考文件
* php.twbbs.org / Plan: 看板 &
※ 内容
* 教学目标
先前的架设只是单纯让一个 BBS "动起来", 但没有经过细部设定的 BBS 等於白架.
接下来我们要对 BBS 进行以下基础的设定:
1) 开设看板
2) 设定 /etc/ 下的档案
3) 设定 crontab
4) 设定 BBS 收 Internet 的信件
5) 设定转信
6) 修改你的 bbs
经过这几部处理之後, 你的 BBS 才算架设完成.Z)
* 教学内容
+-----------------------------------------------------------------------+
| 开设看板 |
+-----------------------------------------------------------------------+
BBS 的基本要素就是看板. 我们刚刚建立好的 BBS 却一个看板也没有, 所以我们
来建立一些看板吧 ! 首先建立 sysop 板, 除了与网友进行交流之外, 这也是公告
的好地方.
以 sysop 登入, 由主选单进入
(0)Admin 【 系统维护区 】
可以看到
(B)oard 开辟新看板
进入之後会要求输入板名, 那就用 sysop 吧 !
接着会要求输入看板主题. 这边要稍微注意一下, 原始的设计是, 看板主题就是
看板的说明, 同时也能表示出该板是否有转信. 所以在格式上有点小小的要求,
比如说:
◆ 与网友交流
前面的符号代表着转信与否, 如果是不转信的看板, 符号可以是空心的, 比如 ◇
反之则是实心的符号. 接着空一格, 才是看板的主题也就是看板说明. 如果不遵照
这样子的格式进行命名, 等会把看板加入分类目录时就会产生奇怪的看板说明.
虽然这样子很奇怪, 不过还是请大家遵守吧 (至少在你不会改程式之前)
所以在这边我们输入:
◇ 报告站长
然後要输入板主名单, 板主可以有很多个, 以 "/" 分开, 比如
sysop/shakalaca
代表有两位板主, 一个是 sysop 另一个是 shakalaca, 在这边我只设定一名板主
sysop. 接着要设定阅读及发表权限, 那个中文很简单, 看一看就知道了, 比对的
方式就是如果使用者有这样子的权限, 就可以阅读看板或者是发表文章.
(但我没有试过如果打开 "G □ 禁止发表文章" 使用者可否发表 ? :p)
再来是设定属性, 里面有七个选项 :
0 □ 不可 Zap
1 □ 不转信
2 □ 不记录篇数
3 □ 不做热门话题统计
4 □ 不公开选举结果
5 □ 匿名看板
6 □ 不可转寄转贴文章
不可 Zap 的意思是说, BBS 上面有一种功能是可以在看板列表中, 如果你按下
z, 则游标所停位置指到的看板就会被你 "z 掉", 当你退出看板列表并且在进来
时, 看板就会 "消失不见". 当然这不是真的消失, 你可以按一下 "y", 就可以看见
你刚刚 zap 的看板. 这是一个很方便的功能 (在 "我的最爱"这个功能尚未出现之时)
如果站台看板太多, 有些看板你并不喜欢, 你可以将看板 "z 掉", 如此一来看板列表
就显得乾净许多, 因为剩下来的都是你想看的看板.
话说回来, 如果看板设定 "不可 Zap", 则使用者便无法把该看板 "z 掉". sysop 板
算是一个蛮重要的看板, 设定为 "不可 Zap" 吧 ! 剩下的设定你可以参考参考 :)
最後会要求确认说是否要新增这个看板, 当然选 "Y" 罗.
然後会询问是否加入 NewBoard 群组, 你可以选择 "Y" 看看, 稍後会告诉你如何
成立群组看板.
ok ! 看板成立了, 不过先别及, 不要急着去阅读看板. 因为有个 bug 存在,
您必须依照上面的步骤, 在建立一个看板为 note, 这是存放动态看板, 也就是
在主选单上面的画面的地方. 如果不信邪, 你可以试试看回到主选单, 然後
进入 "(C)lass 【 分组讨论区 】", 会看到一个目录是 BBS, 当你按右键
时, 你会发现你已经断线了. 所以赶快建立一个吧 !
建立好 sysop 看板以及 note 看板之後, 请先退出 bbs, 以 bbs 帐号执行
# bin/camera; bin/account
然後再回到 bbs, 进入 分组讨论区 的 BBS 目录. 噢 ! 可以进去了, 而里面
有个看板为 note, 中文描述就是你刚刚所输入的看板主题. 可是 sysop 看板呢 ?
因为你还没有将 sysop 看板进行分组, 所以当然看不到. 回到主选单, 进入
"(A)nnounce 【 精华公布栏 】", 有一个目录是 Class 看板精华. 里面就是
对应到主选单里的 "(C)lass 【 分组讨论区 】".
所以我们进入 BBS 这个分组目录, 接着把 sysop "挂" 上来. 按一下 Ctrl + P,
底下会出现:
新增 A)rticle B)oard C)lass D)ata F)older G)opher P)aste Q)uit [Q]
按 B, 会要求你输入看板名称, 输入 sysop 并且按 Enter, 视窗底部会出现
存放位置 A)ppend I)nsert N)ext Q)uit [A]
选择 I, 然後你就会看见 sysop 板出现在 note 板的上方, 代表你已经成功
将 sysop 板放入 BBS 群组了. 不过先别高兴的太早, 因为 Maple BBS 把群组
写入一个档案中并且载入记忆体, 所以当记忆体尚未更新时, 回主选单的
分组讨论区查看时, sysop 板并没有再 BBS 这个目录底下. 为了要让结果马上
出现, 先退出 bbs, 然後以 bbs 帐号执行:
# bin/camera; bin/account
这两个指令一个是将您刚刚所做的结果写入档案中, 另一个是把档案载入记忆体.
接着重新回到 bbs, 你会发现 sysop 看板已经成功的放到 BBS 目录底下了 :)
对了, 先前不是有提到 NewBoard 群组嘛 ? 回到 精华公布栏 的 看板精华中,
一样用 Ctrl + P, 选择 C, 然後输入 新进看板区, 接着输入 NewBoard,
然後接着按 Enter, 同样的你会看到多出一个群组:
◆ NewBoard/ 【 新进看板区 】
一样重复刚刚的动作执行 camera & account, 然後回到 bbs. 你会发现 NewBoard
目录底下是你刚刚建立的看板. :)
以上就是简单的看板设定, 接下来我们先看一看 ~bbs/etc 里面的档案.
+-----------------------------------------------------------------------+
| 设定 /etc/ 下的档案 |
+-----------------------------------------------------------------------+
= 有些档案可以删除了 =
bbs.acl, confirm, emailpost, plans, register, spam.acl, summer.mail,
还有 @ 目录.
= 其他档案的介绍 =
announce:
公告事项可以放在这边, 会在进站显示 welcome 之後出现.
approved:
当使用者通过身分认证之後, 会将这份文件寄到使用这的信箱.
你可以把站规, 注意事项, 甚至是站台的特殊功能写在这边让使用者知道.
(虽然说大部分的人都忽略 :p)
! 注意这个是当你使用 "注册表单认证" 的功能时, 管理者审核使用者注册
後存在使用者信箱的档案. !
badid:
设定不可以拿来注册的 id, 比如 fuck. 或者是你觉得 shakalaca
是不雅的 id 你可以写在这个档案里面, 一行一个 id. 如此一来使用者就
无法注册这些 id 了.
crontab:
crontab 的示范档案, 稍後会提到. 如果懒的自己写, 可以用
# crontab crontab
将这个档案放到你的 crontab 中.
e-mail:
使用者进行 email 认证时会出现的提示档案, 提醒使用者如何进行身分认证.
expire.conf:
设定看板的文章数量以及保留期限, 格式是这样子的:
看板名称 保留天数 最大文章量 最小文章量(当没达到这个数目时, 不会砍)
比如说,
sysop 30 3000 1000
代表 sysop 看板的文章只能保留 30 天, 当文章少於 1000 篇的时候部会进行
砍除, 而如果文章超过 1000 篇超过天数的文章会砍掉, 或是当文章已经超过
3000 篇的时候, 超过的文章会砍掉. 这个档案是给 ~bbs/bin/expire 看的.
justified:
跟 approved 的功能是一样的, 但很奇怪的两份文件的内容并不相同.
当使用者 "回覆认证信件" 之後, 这份档案会自动寄到使用者的信箱.
预设是使用电子邮件身分认证, 所以你要修改的可能是这一份档案.
justify:
使用者在设定 email address 之後会出现的说明画面, 提醒使用者回覆
身分认证信件.
mail.acl:
设定拒收哪些人或者是站台发送过来的信件.
你可以设定某个网域如: .ht.net.tw
或者是某位使用者如:
[email protected]
也可以是某个 id 开始的位址如: guest@
mail.over:
当使用者的信箱超过容量的时候, 会出现提醒使用者清理信箱的画面.
mquota:
当使用者的信箱有信件超过保留期限时, 会出现提醒使用者清理信箱的画面.
newuser:
新使用者注册三天之内进站会显示的画面.
notify:
当使用者的认证期限过了, 或者是使用身分认证却尚未回覆的时候, 会在
进站时提醒使用者的画面.
re-reg:
使用者的身分认证期限快要到的时候, 会於进站时提醒使用者重新认证的画面.
sysop:
站长列表, 当使用者在信件选单要寄信给站长时会读取的档案.
一行一位站长, 後面接着的是负责范围.
valid:
当使用者进行身分认证时, 系统会自动寄出一封信件到使用者的信箱.
这就是那份文件啦.
webx.conf:
webx.conf.cwb:
因为气象局的档案改位置了, 所以用不到可以砍了.
如果你能在网路上找到新的方法, 或许还有保留的意义 (其实有喔)
以上就是 etc 里面档案的简短说明, 其实设定不是很多, 会常用到的大概
只有 expire.conf. 但里面有不少档案还有 "枫桥驿站" 字样的档案, 你可以
在此修改为你的站台名称.
+-----------------------------------------------------------------------+
| 设定 crontab |
+-----------------------------------------------------------------------+
crontab 主要是来帮助你执行一些日常需要执行的档案, 详细内容请自行
man crontab. 我们来看一看基本的设定:
=========================我是分格线 of crontab==============================
# 每小时作一次人次统计及开票
2 * * * * bin/account
# 每小时更新一次动态看版
43 * * * * bin/camera
# 每小时作一次话题统计, 特别注意是在 account执行之前
50 * * * * bin/poststat
# 每天根据 expire.conf对看版文章作expire
30 3 * * * bin/expire
# 每天对作 garbage collection, garbage的形成详见编辑之document
30 4 * * * bin/gem-check
# 每天对作索引档, 方便使用者搜寻
30 6 * * * bin/gem-index
=========================我是分格线 of crontab==============================
在尚未考虑到转信的情况是这麽设定的. 似乎没什麽好解释 :p
+-----------------------------------------------------------------------+
| 设定 BBS 收 Internet 的信件 |
+-----------------------------------------------------------------------+
如果你用 sendmail, 请设定 sendmail.cf:
######################################
### Ruleset 0 -- Parse Address ###
######################################
Sparse=0
R$* $: $>Parse0 $1 initial parsing
Rbbs < @ $=w . > $
#mailpost $: bbs mailpost for bbs
Rbbsreg < @ $=w . > $
#mailpost $: bbsreg mailpost for bbs
R$+.bbs < @ $=w . > $#bbsmail $: $1 bbs mail gateway
R<@> $#local $: <@> special case error msgs
R$* $: $>ParseLocal $1 handle local hacks
R$* $: $>Parse1 $1 final parsing
# handle locally delivered names
R$=L $#local $: @ $1 special local names
Rbbs $
#mailpost $: bbs mailpost for bbs
Rbbsreg $
#mailpost $: bbsreg mailpost for bbs
R$+.bbs $#bbsmail $: $1 bbs mail gateway
R$+ $#local $: $1 regular local names
Mbbsmail, P=/home/bbs/bin/bbsmail, F=lsSDFMhPu, U=bbs, S=10, R=20/40,
A=bbsmail $u
Mmailpost, P=/home/bbs/bin/mailpost, F=lsSDFMhPu, U=bbs, S=10, R=20/40,
A=mailpost $u
首先找到 "Sparse=0" 这个部分, 请改成上面第一段的样子,
接着找 "handle locally" 这个地方, 改成上面那样, 并加入 Mbbsmail 那几行.
请注意所大部分的空白都是 tab, 另外就是 /home/bbs 请改成你所使用的 bbs
家目录, 以及 U=bbs 改为 U=你的bbs帐号.
+-----------------------------------------------------------------------+
| 设定转信 |
+-----------------------------------------------------------------------+
BBS 如果都是站内看板当然是一种特色, 不过转信版的成立可以让 BBS 看起来
比较具有规模, 当然资讯的交流才是转信的主要目的. :)
设定转信板有几件事情要注意:
1. 对 news 进行转信礼貌上要支会一下管理者, 通常是 news@申请转信的伺服器
不过通常都可以直接转信没关系, 除非你没有发表文章的权限.
2. 取送信的次数不要太频繁, 虽然说现在的 server 都很猛, 但我个人认为
一天取信不要超过 144 次, 也就是说 10 分钟转一次就已经很多了.
你可以先去其他站台观察一下看板的流量如何, 如果说该转信板平常就没有
多少文章, 你可以设定 30 分钟或者是 1 小时取一次文章. 如果看板的流量
颇多 (如 tw.bbs.forsale 或 tw.bbs.sports.baseball.elephants)
你就可以考虑 10 分钟或者是 30 分钟取一次文章)
3. 要测试转信请用 tw.bbs.test 之类的测试看板, 不要在一般的转信板上发表
" sorry, test, 站长看到请砍 " 这一类的文章. 另外成立转信板时可以先
取消一般使用者发表的权限, 等到文章都进来了再看放发表. 如此一来可以
避免 "耶, 我是第一篇喔" 之类的文章转出去.
以上尤其是第三点, 请各位架站的朋友一定要特别注意.
那麽接着进行转信的设定, 主要的设定及程式都放在 ~bbs/innd 里面,
稍微介绍一下:
innbbsd:
主要转信程式, 在启动这一支程式後你才可以进行转信.
ctlinnbbsd:
控制你的 innbbsd, 包括列出参数, 停止 innbbsd 以及重新载入设定档案.
bbslink:
将你发表於转信板的文章送出去.
bbsnnrp:
从 news server 将 news group 的文章转到板上.
nodelist.bbs:
要跟你转信的站台 name, domain name 以及 port 等资料.
newsfeeds.bbs:
设定看板发表的文章要送到哪一台机器以及哪一个 group.
bbsname.bbs:
设定你的转信代码, 注意这边要跟 nodelist.bbs 里面一样
一开始当然要先有个看板, 比如 Linux 好了, 我希望他能够跟 news server
上的 tw.bbs.comp.linux 转信.
! (注意: 以下设定档都在 ~bbs/innd 里面, 栏位之间请用 tab 隔开, 不要用空白)
接着设定 nodelist.bbs, 假设我要跟 news.ncku.edu.tw 转信, 以下是我的设定:
lion lion.ee.ncku.edu.tw IHAVE(7777) 测试站
news-ncku news.ncku.edu.tw POST(119) 成大 News Server
第一个栏位是你的 转信代码, 第二个栏位是 这个代码所对映到的 domain name,
接着是转信 port, 一般而言 news 都是 POST(119), 最後是说明
第一行先输入你自己的站台, 比如我的代码是 lion, DN 为 lion.ee.ncku.edu.tw,
而後面请设定 IHAVE(7777), 最後来个说明.
第二还就是我要转信的 server, 我把他叫做 news-ncku, DN 为 news.ncku.edu.tw.
然後编辑 newsfeeds.bbs, 加入
tw.bbs.comp.linux Linux news-ncku
编辑 ncku.active 档案, 这是用来纪录你跟 news server 之间的转信.
tw.bbs.comp.linux 0000000001 0000000000 y
注意上面的设定, 输入资料後一定要换行. 接着试试看转信是否成功:
# innd/ctlinnbbsd reload
# innd/bbsnnrp news.ncku.edu.tw innd/ncku.active
如果出现
GROUP tw.bbs.comp.linux
211 564 249795 250377 tw.bbs.comp.linux
** 0 ** 249796 need it <
[email protected]>
** 1 ** 249797 need it <
[email protected]>
....
** 97 ** 249895 i have it <
[email protected]>
** 98 ** 249896 i have it <
[email protected]>
** 99 ** 249897 i have it <
[email protected]>
这样子的讯息, 代表你转信成功了.
注意以後每次修改 innd 下任何的设定档, 一定要
# innd/ctlinnbbsd reload
才会生效. 既然转信成功了, 就让这件事情自动化吧, 编辑 crontab, 加入
5,35 * * * * innd/bbsnnrp news.ncku.edu.tw innd/ncku.active > /dev/null 2>&1
10,40 * * * * innd/bbslink /home/bbs > /dev/null 2>&1
记得把Ohome/bbs 设定为你的 bbs 家目录.
+-----------------------------------------------------------------------+
| 修改你的 BBS |
+-----------------------------------------------------------------------+
你应该会注意到, 这个站台还有很多地方不是属於 "你自己", 包括进站画面,
站台资讯, 还有 etc 里面的设定档案. 你可以利用 grep 这个工具, 把包含
以下字样的档案找出来并加以修正:
冷馨
枫桥
修正好之後, 你就有一个属於你自己的 BBS 站了 ! :)
--
^..^ ★ < 猪 头 纪 公 园 - php.twbbs.org (140.113.208.200) >
-w @@ w-- < lion.ee.ncku.edu.tw >