這篇文件說明快速安裝的方法,
其他最新安裝相關說明亦可參考: https://github.com/ptt/pttbbs/wiki 內容
==============
以 root 的權限
==============
在主機上加入兩個 UID 為 9999 的帳號,分別取名為 bbs 與 bbsadm。
家目錄設為 /home/bbs,Group 則取名叫 bbs,GID=99。
bbs 的 shell 設成 /home/bbs/bin/bbsrf,不設密碼。
bbsadm 的 shell 設成 /bin/sh (或 csh, bash, 選喜歡的即可)並設定密碼。
以 Debian 等 Linux 為例:
1. 打 vipw, 加入底下兩行
bbs::9999:99:PttBBS,,,:/home/bbs:/home/bbs/bin/bbsrf
bbsadm::9999:99:PttBBS,,,:/home/bbs:/bin/bash
2. 執行 passwd bbsadm 設 bbsadm的密碼
3. 在 /etc/group 中加入一行
bbs:x:99:
4. 執行 mkdir /home/bbs
5. 執行 chown -R bbs:bbs /home/bbs
6. 執行 chmod 700 /home/bbs
當然,你也可以用 adduesr 或 useradd 等等程式幫忙建立與設定。
其它環境 (如 FreeBSD) 請自行參照相關作業系統使用說明。
====================
以下用 bbsadm 的身份
====================
7. 您可以透過下列方式下載到本站的原始程式碼:
https://github.com/ptt/pttbbs
這是目前主要開發的版本, 也是批踢踢實業坊和批踢踢兔兩個站台
所使用的版本. 在這個版本中含有最新的程式, 但是可能會不穩定,
有 bug, 甚至和之前的版本不相容. 建議您有基礎的程式能力, 並
隨時注意 PttCurrent 看板 (在 telnet://ptt.cc 中, 或可以使用
網頁版本 http://www.ptt.cc/bbs/PttCurrent/index.html) , 尤
其當您在更新程式的時候.
git clone http://github.com/ptt/pttbbs
您可以在該目錄下直接透過 git pull 更新至 pttbbs 最新的源碼. 如:
cd /home/bbs/pttbbs; git pull; git rebase
8. 切換到 pttbbs 的目錄下 ( cd /home/bbs/pttbbs )
9. 如果您的 pttbbs.conf並不存在, 可以拷一份預設的來用:
cp sample/pttbbs.conf pttbbs.conf
10.依據您的須求, 修改 pttbbs.conf
請注意, 預設的 pttbbs.conf是給相當大規模的 bbs用的.
通常您須要進行修改以符合您的須求.
如果是在 64bit 的作業系統編譯安裝 PttBBS
請記得在 pttbbs.conf 取消以下兩個定義的註解:
#define SHMALIGNEDSIZE (1048576*4)
#define TIMET64
* 如果您是用 Linux 系統, 請先安裝 pmake, 然後將 make alias 成 pmake *
* 如果您是用 MacOSX 系統, 請先由 ports 安裝 bmake,
然後將 make alias 成 pmake *
以下是編譯前建議先安裝的套件清單,
可以用 apt / yum 等套件管理員指令檢查自己有沒有安裝到:
bmake, ccache, clang, gcc, git, libevent-dev/libevent-devel,
pkg-config/pkgconfig/pkgconf, python
11.(在 /home/bbs/pttbbs 下) 執行 make clean; make all install
12.如果是新架起來的站, 請執行 cd sample; make install
13.執行 cd /home/bbs; bin/initbbs -DoIt
其中第 13 以及 14 步是給第一次安裝的時候使用的,
如果您的 BBS中已經有資料了, 請務必不要執行這兩個步驟.
假如一切都很順利的話, 這樣子大概就安裝完了, 接下來是啟動 bbs 的部份.
15.執行 /home/bbs/bin/shmctl init (*註1, *註2)
16.用 root 執行 /home/bbs/bin/mbbsd -p 23 -d (*註3)
其中 -d 是指定 daemon mode. 若連線有問題需要方便測試時可以先不加 -d,
用別窗直接進行連線以方便找出問題。
17.測試整個系統是否完成:
telnet localhost 23 看看
new 一個帳號叫SYSOP, 然後 logout再 login, 這樣子就會擁有站長權限囉~
再 new一個帳號叫 guest , 這樣子別人就可以用 guest 參觀你的站了
(若系統回應「無法接受這個代號」,請先隨便建一個 guest0 的帳號,
再換 SYSOP 登入並把 guest0 改名為 guest, 順便把權限設一定)
開板, 開群組, 以及搬動群組的方法請看 ptt2.cc PttSrc 板的文摘
18.相關進階功能請參考 ADVANCE
19.為了讓開機的時候會自己把 bbs (以及所須要的程式) 跑起來,
若您使用 Linux, 您可以參考 /home/bbs/sample/rc.local 的內容
以 root 權限建立 /etc/rc.local 檔案將該內容複製進去, 並將權限設定可執行
之後您可以重新開機試試看是不是在重開後可以正常運作 :)
20.pttbbs 須要定時執行一些小 tool 來維持系統正常運作,
reload cache, 備份, 節日點歌等系統資訊,或其它特殊外部程式等等.
請用 bbs的權限, 執行 crontab -e , 內容請參照 sample/crontab
(在大部份的情況下, 直接將 sample/crontab 內容拷備進去
或是直接 crontab /home/bbs/pttbbs/sample/crontab 即可
21.在某些情況下, pttbbs會須要一些其他的程式來輔助.
下面列出所須要的程式, 程式所屬的路徑可以使用指令查詢: type <程式名稱>
tar
gzip
rm
perl
mutt
lynx
我們大部份的 perl script會用到 LocalVars.pm , 該檔案內負責定義
各別機器的設定 (如外部程式的路徑) .
請將 /home/bbs/pttbbs/sample/LocalVars.pm 複製一份至 /home/bbs/bin/
下, 並修正該檔以符合貴環境的設定.
另外列出我們 perl script會用到的 perl module
Mail::Sender
IO::All
註:
1. 這個程式是在 initial shared memory 用的, 只有開機後第一次執行, 或是
你手動清除 shm 後才需要執行
2. 如果您跑了 shmctl init 或 uhash_loader 並沒有看到
total XXXXX names loaded.
而是看到其他的錯誤訊息
(例如 [shmget error] key = 4cc, errno = 22: Invalid argument)
可能是您作業系統 shared-memory 上限不足,
請參考 docs/FAQ 中加大 shared-memory 部份的說明.
3. bin/mbbsd -p 23 是指定要 bind 23 port, 依照 UNIX 規定, 1024 以下的 port
須要有 root 權限, 所以如果要 bind 23 port 的話就要用 root 去執行,
3000 port 則不需要.
請參考 docs/ADVANCE 安裝好 bbsctl ,
之後您就可以透過 bbsctl 直接在其他權限下 (如 bbsadm )
來啟動可以 bind port 23 的 mbbsd.
對於 ptt/ptt2 規模的超級大站,還有另一個選擇是使用 daemon/logind 。
4. 您必須先安裝 git (請參考官方網站 http://git-scm.com/ )