CONFIG - ptt/pttbbs GitHub Wiki
範例設定檔在 sample/pttbbs.conf
或 sample/pttbbs_minimal.conf
如果是在 64bit 的作業系統編譯安裝 PttBBS, 請記得開啟以下兩個定義:
#define SHMALIGNEDSIZE (1048576*4) // FreeBSD, Ubuntu 使用者可以不加此定義
#define TIMET64
不然會出現 undefined reference to ....
之類的錯誤編譯訊息
/* 新手板(會自動進我的最愛) */
#define BN_NEWBIE BBSMNAME "NewHand"
/* 找看板(會自動進我的最愛) */
#define BN_ASKBOARD "AskBoard"
實際測試的結果好像是不會自動進我的最愛, 如果想要讓它自動進請自行記得到 (BBS家目錄)/etc/myfav_defaults
編輯修改
/* 幫忙寄信的 server, 一般設成自己(即ip: 127.0.0.1)就可以 */
//#define RELAY_SERVER_IP "127.0.0.1"
如果自己的BBS伺服器沒有需要轉信 (其實現在跟看板轉信有關的程式碼, 已經都被disable掉了)
或站際間信件的轉送 (例如從A站寄信到B站的信箱), 這個定義似乎也可以註解掉
另外記得自己在啟動BBS時, 若無需求也不必將 (BBS家目錄)/bin/outmail
這個程式也打開
/* 水球整理, 看板備份等等外部程式 */
//#define OUTJOBSPOOL
要開啟這個定義, 必須要確保相關的外部程式可以跑, 不然開了也沒用, 若還不熟悉可以自己先關著, 然後有備份需要就先手動備份
/* 若定義, 則不能舉辦賭盤 */
//#define NO_GAMBLE
因為現在板主要在 ptt 測試看板樂透可能不太方便 (大家都看得到), ptt2 也不能在板上舉辦賭盤
所以也可透過自己架測試站來嘗試、練習, 如果是要這樣運用的話, 請將此定義註解掉。
全站賭盤的話, 還要自己另外再新增一些設定檔, 賭盤才會跑起來, (待補)
/* 使用新式的 pmore (piaip's more) 代替舊式 bug 抓不完的 more 或是簡易的 minimore */
#define USE_PMORE
如果已經很習慣 Ptt 現在閱讀文章的介面的話, 強烈建議一定要把這個定義打開!!!
不然可能用舊的介面讀起文章會不順以外, 目前用pmore相關指令設計的BBS動畫也可能會因此跑不了
舊介面閱讀文章示意圖: (無法支援pmore動畫script)
新介面閱讀文章示意圖: (不會按個PgDn就直接衝到下篇文章, 且支援動畫功能)
/* 若定義, 則在刪除看板文章的時候, 僅會在 .DIR 中標明, 並不會將該資料
從 .DIR 中拿掉. 可以避免多項問題 (尤其是熱門看板一堆推薦及編輯時)
須配合使用 (尚未完成) */
ps. .DIR
非常大概的意思就是: 索引檔, 跟看板裡的文章標題目錄有關, 就是很多人常常在講的「外標題」之類相關的東西
#define STR_SAFEDEL_TITLE "(本文已被刪除)"
/* 這樣被刪文章的標題才會顯示 (本文已被刪除) */
#define FN_SAFEDEL ".d"
#define FN_SAFEDEL_PREFIX_LEN (2)
#define SAFE_ARTICLE_DELETE_NUSER (0)
/* 如果沒定義這個, 預設要等到看板人氣大於 2 的時候,
刪除完文章才會留下屍體 */`
如果想要測試刪除文章所留下的屍體的話, 記得要將這些相關定義自行開啟並補上相關資訊
/* 若定義, 則 SYSOP帳號並不會自動加上站長權限.
在第一次啟動時, 您並不能定義 (否則就拿不到站長權了) .
而在設定完成後, 若您站長帳號並不叫做 SYSOP,
則可透過 NO_SYSOP_ACCOUNT 關閉該帳號, 以避免安全問題發生. */
//#define NO_SYSOP_ACCOUNT
可以用 SYSOP 設定完你想要使用的站長權限帳號後
再將 註解 取消掉並重新編譯, 另外也可以把 SYSOP 這個 ID
放在 (BBS家目錄)/etc/reserved.id
這個檔案裡 (for設定系統保留帳號)
這樣後來新註冊的人, 就連 SYSOP 這個帳號都無法申請了
/* 若定義, 則使用舊式推文 */
//#define OLDRECOMMEND
如果沒有把這個定義註解掉, 你這個站台的「2」就真的壞了.........
(可參考ptt.cc/ptt2.cc的推文介面的差異)
/* 若定義, 則 guest 可推文,格式變為 IP+日期 */
//#define GUESTRECOMMEND
此功能還沒設定成功, 還有待補充
/* 定義幾秒內算快速推文 */
#define FASTRECMD_LIMIT (90)
可以幫你定義第一次推噓文多久的時間內只能加註
#define ASSESS
文章評價相關程式碼: 開啟這個定義, 你就可以使用「退文」的功能
#define USE_RECENTPAY
如果沒定義這個,站內的虛擬幣(以ptt站來說就是p幣)交易將無法留下紀錄!!
#define USE_MAIL_ACCOUNT_SYSOP
最近 sitos@github/ptt
寫程式碼提交的一個新功能,
可以讓沒通過註冊認證的使用者寄信給帳號站長
(可以到 (BBS家目錄)/etc/mail_account_sysop
編輯相關收信列表)
#define USE_LIVE_ALLPOST
定義這個可以讓 ALLPOST 相關同步的模式比較接近現在 ptt/ptt2 採用的模式
(不過要另外設定才會有只記錄7天前ALLPOST文章的功能...)
#define USE_PFTERM
定義完 USE_PFTERM
可以解決一些問題
當系統維護時進入 編輯系統檔案、資源回收桶、編輯紀錄 等介面時
才不會有所在游標的位置無法顯示任何文字的情況
以及如果需要開啟 BBSLua 功能的話, 也需要先開啟此介面來改善顯示效果
#define NO_LOGINASNEW
當覺得不想再讓站上有新的ID出現時可以定義此函式
(停止受理新的註冊單也有相關的定義, 暫時找不到之後再補)
#define DEBUG
一般用來 debug的情況下會用到, 你也可以在編譯時再自行 DEBUG=1
參數
會開啟一些 DEBUG 用途的程式碼, gcc
幫你編譯時不用 -O
而改加上 -g
,
menu title 顯示目前的 PID, 以方便用 gdb
來 attach
.
#define USE_TIME_CAPSULE
要定義這個才能開始使用編輯紀錄、刪除部分文字以及資源回收桶的功能
刪除部分文字需另將推文記錄服務(見03. b)開啟
#define MAX_POST_MONEY (1000)
如果覺得自己站台上發表的文章最多只有 100 單位(預設值)的虛擬代幣不夠, 可以自己調整XD
#define INSCREEN "(請至pttbbs.conf編輯你的前進站畫面)"
其實就是個讓你可以把白馬畫面設定出來的地方:
至於要如何將 ANSI 碼上色? 目前想到的是, 可以善用 跳脫字元 ( \033
)
搭配相關的ANSI上色教學, 即可初步創作屬於自己的「白馬」
#define USE_NEW_BAN_SYSTEM
開啟新的水桶系統功能, 取代人數有上限的傳統水桶功能
#define BBSUID 9999
#define BBSGID 99
可手動修改上述兩項,以符合先前帳號之設定
#define PLAY_ANGEL
#define ANGEL_CHANGE_TIMELIMIT_MINS 1
記得目前若要開啟此功能需兩行一起定義,否則無法通過編譯
(by #1PPuEF67 (PttCurrent) [ptt.cc] )
#define MAX_ADBANNER (500)
存放點歌數量的上限是:動態看板上限數-100
#define BN_ID_RECORD
#define FN_ID_RECORD
#define HAVE_USERAGREEMENT "etc/UserAgreement"
//#define HAVE_USERAGREEMENT_VERSION "etc/UserAgreementVersion"
//#define HAVE_USERAGREEMENT_ACCEPTABLE "etc/UserAgreementAcceptable"
啟用使用者條款時,若沒有要讓舊使用者再度同意才能進站的需要
只要定義 HAVE_USERAGREEMENT
為 "etc/UserAgreement"
即可
記得自行至相關目錄下加指定檔案
#define CHAT_MSG_LOGFILE "log/<你要的檔名>.log"
即可記錄站台內聊天室中 [main]
包廂的對話紀錄
其他更多更詳盡還沒被發掘的功能
也可以去查閱裡面的程式碼來推測可以測試開啟哪些定義
每次在 pttbbs.conf
調完設定要重新編譯前, 請先自己記得清掉之前編譯出的東西:
$ cd ~/pttbbs && pmake clean && pmake all install clean
- 小提醒,請使用
bbs
user 或是bbsadm
user 而不是root
, 這樣 install 好的東西才會在/home/bbs
目錄喔