精華區beta PttCurrent 關於我們 聯絡資訊
這篇文件說明快速安裝的方法, 其他最新安裝相關說明亦可參考: 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/ )