看板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 >