[轉錄][beta] Maple BBS 之架設篇
※ [本文轉錄自 shakalaca 看板]
作者: shakalaca (Lord Of The BBS :D) 看板: shakalaca
標題: [beta] Maple BBS 之架設篇
時間: Sun Oct 12 19:20:16 2003
摩拳擦掌來架站 (Maple BBS 之架設篇)
===================================
※ 版本
2003.10.12 初稿
※ 作者
Jian-Zhou Huang <qq@php.twbbs.org>
※ 參考文件
* php.twbbs.org / Plan: 看板 & 精華區
※ 內容
* 架站環境
1) FreeBSD 5.1 / PIII-1G / 512MB ram / 512MB swap
2) 架站所用的 id/groupid: bbsadm/bbsgroup (9999/9999), 家目錄為 /home/bbs
3) 我假設你的機器沒有使用 telnetd, 或者是其他任何程式佔住 port 23
* 教學目標
1) 編譯 BBS
2) 啟動 BBS
3) 開機自動啟動 BBS
* 教學內容
以下將照著順序安裝 Maple BBS 3.x 以及其延伸版本, 我們首先以原始的
Maple BBS 進行示範.
+-----------------------------------------------------------------------+
| Step 1. 抓取 BBS 程式碼 |
+-----------------------------------------------------------------------+
我們可以在 ftp://php.twbbs.org/pub/bbs/Maple/Maple3 找到
MapleBBS-3.02-RELEASE.tgz & MapleBBS-3.10-20000606-SNAP.tgz
這兩個檔案. 前者是由 lkchu@rouge.dragon2.net 所 port 到其他平台的版本,
後者則加入了 mat.bbs@bbs.kimo.com.tw 的修正. 因此在這邊我使用後者的檔案,
雖然說我不保證程式完全沒有問題.
我們先以 bbsadm 登入到主機, 然後把檔案抓下來放到家目錄下並解開:
# tar zxvf MapleBBS-3.10-20000606-SNAP.tgz
+-----------------------------------------------------------------------+
| Step 2. 修改並且編譯 BBS |
+-----------------------------------------------------------------------+
切換到 src/include 並修改 config.h, 有幾個部分一定要更動:
> #define BOARDNAME "冷 馨 居" /* 中文站名 */
- 改成你想要用的中文站名.
> #define MYHOSTNAME "Rouge.Dragon2.Net" /* 網路位址 */
- 改成你的 hostname, 比如 "php.twbbs.org"
> #define BBSHOME "/home/bbs" /* BBS 的家 */
- 如果你的 bbs 不是安裝在 /home/bbs, 請修改這個路徑
> #define BBSUID 9999
- 如果你所使用的 uid 不是 9999, 請更改
> #define BBSGID 99
- 如果你所使用的 gid 不是 99, 請更改. 我這邊就改為 9999
> #define TAG_VALID "[RougeBBS]To " /* 身分認證函token */
- 身分證任所使用的 Tag, 你可以改成你想要的文字. 比如 "[TestBBS]To "
接著請:
# cd ../lib
# make clean all
# cd ../maple
這邊請注意, 請依照你所使用的作業系統, 將 ostype 換成相關的文字.
比如你使用 freebsd 則 ostype 替換成 freebsd; 如果是 linux 則替換成 linux.
後面有提到 ostype 請依樣畫葫蘆.
# make ostype install
Linux 的使用者請注意, 如果你在編譯時出現 menu.c:xxx: dereferencing ...
之類的錯誤, 請修改 ~bbs/src/include/bbs.h 中第 31 行
#include <sys/time.h> 改成 #include <time.h>
然後編譯其他檔案:
# cd bso
# make ostype install
# cd ../../util
# make ostype install
如果 Linux 使用者在這邊出現 webx.c 的錯誤, 也請修改 webx.c 中的
#include <sys/time.h> 改成 #include <time.h>
# cd ../bgopherd
# make ostype install
# cd ../innbbsd
修改 Makefile, 把
1. ADMINUSER 改成你所使用的 email.
2. BBSHOME 設定為你的 bbsadm 家目錄.
3. BBSADR 改成你所使用的 domain name.
最後要修改一下 innbbsconf.h, 找到:
# define DefaultINNBBSPort "119"
把 119 改成 7777, 儲存離開, 然後:
# make ostype install
到這裡為止, 一些 bbs 基本的工具及程式都已經編譯完成.
如果你想要讓 bbs 的使用者能夠使用 pop3 收信, 請
# cd ../bpop3d
# make ostype install
如果你這台機器只想單純做 bbs 的用途, 而且機器上沒有其他使用者的帳號或者是
不收信件也沒關係, 建議使用 bmtad 讓 bbs 使用者外來信件. 請
# cd ../bmtad
# make ostype install
+-----------------------------------------------------------------------+
| Step 3. 執行 BBS |
+-----------------------------------------------------------------------+
先以 bbsadm 執行
# cd ~; bin/camera; bin/account; bin/xchatd; innd/innbbsd
此時畫面似乎卡住, 不過你可以按 Enter 跳出.
然後以 root 帳號執行;
# ~bbs/bin/bbsd (這是 bbs 主程式)
# ~bbs/bin/gemd (讓別人可以連線讀取你的精華區)
# ~bbs/bin/bguard (讓別人可以遠端查詢使用者)
# ~bbs/bin/bpop3d (讓使用者可以將 BBS 的信件收到自己的電腦中)
如果你想要讓機器單純的只接受 bbs 的信件, 請停止你的 mail daemon 然後
以 root 執行:
# ~bbs/bin/bmtad
到這邊, 你已經架起來一個 bbs 了. 現在
# telnet localhost
應該可以看到 bbs 的進站畫面. 預設是沒有任何帳號, 所以輸入 new
申請一個 sysop 帳號吧 !
申請完成時, 站長的權限並無立即生效, 你要重新以 sysop 的帳號登入,
才在主選單看到 "(0)Admin 【 系統維護區 】" 這個選項. 此時你已經
可以行使站長的權限了.
+-----------------------------------------------------------------------+
| Step 4. 開機自動啟動 BBS |
+-----------------------------------------------------------------------+
在這邊提供 FreeBSD 的方法, 首先編輯 bbs.sh:
========================我是bbs.sh的分隔線================================
#!/bin/sh
if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
echo "$0: Cannot determine the PREFIX" >&2
exit 1
fi
BBSHOME=/home/bbs
PID=`/usr/bin/tail -1 /home/bbs/run/bbs.pid | /usr/bin/awk '{print $1}'`
PS=`/bin/ps -ax | /usr/bin/awk '{ print $1 }' | /usr/bin/grep $PID`
case "$1" in
start)
if [ ! -z "$PS" ]; then
echo ' bbs is already running'
exit 1
fi
su -fm bbs -c $BBSHOME/bin/camera > /dev/null 2>&1
su -fm bbs -c $BBSHOME/bin/account > /dev/null 2>&1
su -fm bbs -c $BBSHOME/bin/xchatd > /dev/null 2>&1
su -fm bbs -c $BBSHOME/innd/innbbsd > /dev/null 2>&1
$BBSHOME/bin/bbsd
$BBSHOME/bin/bguard
echo -n ' bbsd'
if [ -x $BBSHOME/bin/bpop3d ]; then
echo -n ' bpop3d'
$BBSHOME/bin/bpop3d
fi
if [ -x $BBSHOME/bin/gemd ]; then
echo -n ' gemd'
$BBSHOME/bin/gemd
fi
;;
stop)
if [ -z "$PS" ]; then
echo ' bbs is not running'
exit 1
fi
killall -9 xchatd
su -fm bbs -c "$BBSHOME/innd/ctlinnbbsd shutdown"
killall -9 bbsd
killall -9 bguard
for i in `ipcs | grep bbs | awk '{print $3}'`
do
if [ $OSTYPE = "FreeBSD" ]; then
ipcrm -M $i
else if [ $OSTYPE = "linux-gnu" -o $OSTYPE = "Linux" ]; then
ipcrm shm $i
fi
fi
done
echo -n ' bbsd'
if [ -x $BBSHOME/bin/bpop3d ]; then
echo -n ' bpop3d'
killall -9 bpop3d
fi
if [ -x $BBSHOME/bin/gemd ]; then
echo -n ' gemd'
killall -9 gemd
fi
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
;;
esac
exit 0
========================我是bbs.sh的分隔線================================
然後放到 /usr/local/etc/rc.d/ 裡面即可食用 :)
※ 後記
1. 感謝你看到這邊, 不管你是不是跳過前面也好 :p
2. 一而再再而三的修正, 真對不起大家的眼睛 :Q
--
^..^ ★ < 豬 頭 紀 公 園 - php.twbbs.org (140.113.208.200) >
-w @@ w-- < lion.ee.ncku.edu.tw >
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):