看板 PttCurrent 關於我們 聯絡資訊
這篇是對於以上一篇的方法 (改完 pttbbs.conf 相關定義後重新編譯) 無法完全處理到的相關設定, 或沒說清楚的部分做一些補充 這篇會提到以下主題 1. crontab 設定微調 2. 外部套件設定安裝 (BBSLua) 3. 背景伺服外部程式安裝 (故鄉) 4. 背景伺服外部程式安裝 (文章/推文記錄) 注意 2.~4. 安裝的東西都算是站方正在開放較實驗性質的功能, 若之後此部分有重大修改, 自己需要摸索調整的地方可能較多 > ---------- 1. crontab 設定微調 crontab 是作業系統的「例行性工作排程」,更詳盡的入門導引請參考 鳥哥的相關文章: http://linux.vbird.org/linux_basic/0430cron.php 按照github上面安裝說明(doc/INSTALL)的指示, 是不用調整太多的, 但還是有些東西需要留意 安裝方法: 1. 直接將 ~/pttbbs/sample/crontab 裡的內容複製起來 (先將「~」當BBS家目錄,「~/pttbbs」當放CurrentPtt程式碼的地方) 再到shell指令介面輸入: $ crontab -e 後, 在編輯器介面裡直接貼上 2. 或是直接 $ crontab ~/pttbbs/sample/crontab 即可將 BBS 需要的 crontab 安裝到作業系統上 crontab -e進入編輯介面時, 建議可以調整一些東西: 1. # 每天 2:00, 11:00, 16:00, 21:00 開獎 # 0 2,11,16,21 * * * bin/openticket.sh 如果自己的BBS沒有想要開全站賭盤的功能, 可以在前面加上 # 註解掉 這樣排程就不會被執行 2. # 每週三, 六統計轉信所有板 # 35 6 * * 6 bin/showboard .BOARDS > etc/BOARD.rec 現在的Ptt已經沒有轉信功能了, 所以可以註解掉 3. # 清版 (視情況用每天或每週) 20 3 * * 1 bin/expire 有需要刪除文章屍體以及設定開啟看板容量上限的話需要留意這個排程 自己決定要清文章/文章屍體的時間 並不是每次你將BBS系統重開機就會把這些東西清掉的 (當然你也可以利用之前已介紹的rc.local來讓作業系統做這個事情) 4. # 天氣, 股票 # 0 5,11,17,23 * * * bin/weather.sh 現在的天氣/股票預報程式已經抓不到東西了, 故可先把此排程關掉 不然會有以下情形:#1P8Mdyaa (PttBug) 5. # 每日砍除 ALLPOST # 30 5 * * * /bin/rm boards/A/ALLPOST boards/A/ALLHIDPOST; mkdir boards/A/ALLPOST boards/A/ALLHIDPOST 如果不想讓每天早上 5:30, ALLPOST板的文章就消失一次 (e.g. #1P8Z8lSL (PttBug) ) 可以將此排程註解掉 如果想把 crontab 的設定匯出, 讓自己之後若有需要換BBS主機搬資料時方便轉移設定 可以用以下方法 $ crontab -l > ~/crontab (也可以自己隨便取其他檔名,知道自己放到哪個檔案即可) > ----- 2. 外部程式設定安裝 (BBSLua) 首先記錄如何在 CurrentPtt 安裝 BBSLua 功能 關於 BBSLua 的介紹與討論建議可至 telnet://ptt2.cc 的 BBSLua 板參考 如果你在 Linux 系統裡的套件安裝軟體可以找到 lua5.1 lua5.1-dev, 請先將此二套件安裝起來, 或是自行到 https://www.lua.org/ 下載相關程式碼編譯 之後再去 ~/pttbbs/pttbbs.conf 加上以下定義後重新編譯: #define USE_BBSLUA 另外拿有些ptt2的BBSLua板上程式碼文章, 移植過來測試執行時 可能會發生畫面爆炸的情況 這時就需要再配合開啟以下的定義並重新編譯來解決: #define USE_PFTERM 完成這些步驟後, 你架的BBS站應該就可以很順利的執行BBSLua相關功能了 > ----- 3. 背景伺服外部程式安裝 (故鄉) 剛架完自己的 CurrentPtt 後, 應該就可以在 (0)Admin【 系統維護區 】裡 的 (X)file 編輯系統檔案 中 裡面的 etc/domain_name_query.cidr (或直接去 ~/etc/domain_name_query.cidr) 發現站方給的故鄉對應表 (雖然版本好像比較舊...?) 但要讓它能夠派上用場需要編譯安裝以下資料夾裡的程式: ~/pttbbs/daemon/fromd (故鄉) *因應近期相關的程式碼更新: ------------------------------------------------------------------------------- 2017/06/04 定期更新 1. [系統] 故鄉現在可以顯示國家。 ------------------------------------------------------------------------------- https://github.com/ptt/pttbbs/commit/49fd16bf73656abc1604efb157eb23fc04da14ca 請先另行將您的作業系統安裝以下套件再繼續進行安裝步驟: libgeoip1 libgeoip-dev geoip-bin (ref: https://github.com/maxmind/geoip-api-c ) 以下記錄相關安裝步驟: 先至 pttbbs.conf 加上以下定義: /* 使用 daemon/fromd, 使用外部daemon紀錄上站故鄉名稱 */ #define FROMD #define FROMD_ADDR ":5130" 編譯fromd外部程式: $ cd ~/pttbbs/daemon/fromd/ 檢查裡面的 Makefile 檔案, 確認要 make (pmake *)的指令後, 執行: make clean (第一次安裝不需做此步驟); make fromd 重新編譯整個CurrentPtt程式: $ cd ~/pttbbs $ make BBSHOME=/home/bbs clean all install 將相關程式 kill 掉後重新啟動: (或直接reboot, 讓作業系統重新開機) ~/pttbbs/daemon/fromd/fromd (第一次安裝不需做此步驟) ~/bin/mbbsd -d -p [你要開的port] 之後也可以加在 /etc/rc.local 或是其他 shell script 裡當作 開機後自動執行的腳本, 這樣一上BBS就可以在使用者名單查看自己上站故鄉了 > -------------- 4. 背景伺服外部程式安裝 (文章、推文記錄) 文章、推文記錄主要分別是由 postd.py comment.py 為主的 python 程式負責執行 再加上其他小程式輔助 對於大家而言最直接的功用, 在於板主可以透過系統記錄下來的推文記錄 Ctrl+E V 進入推文管理介面, 快速水桶推文違規的人, 或直接把違規推文砍掉 至於文章記錄部分就不確定功用了orz (以下步驟也僅為個人嘗試的結果, 如果有更好的安裝方法還麻煩補充) 要讓它能夠派上用場需要編譯安裝以下資料夾裡的程式: ~/pttbbs/daemon/postd (文章記錄) 首先先去 ~/pttbbs/pttbbs.conf 編輯, 加上以下定義後重新編譯: #define USE_POSTD #define USE_COMMENTD 之後再去 $ cd ~/pttbbs/daemon/postd 之後, 會發現裡面除了c語言檔案及Makefile外, 還有 python 程式 (還不確定rebuild.c等相關的程式碼的功用, 所以先暫時放著不管..) 如果直接執行裡面的 post.py 的話, 會跳出很多錯誤訊息 要你安裝一些 python 的 module(模組), 大部分都可以用 pip 裝起來 有些東西卻怎麼找也找不到 (big5和big5_tb1) 這時重點在於裡面的一個 symbolic link 連結到的 pyutil 目錄裡的東西 因為幾乎所有的BBS主要介面與裡面的檔案支援的都是Big5編碼 但python若要認得&可以處理的中文字元主要是UTF-8等字元 (待確認...) 所以要讓相關的python程式順利執行, 裡面附上的相關編碼轉換套件就得先裝好: 查看code裡面所需要用到的文件, 請先將兩個Big5與UTF-8互轉的編碼表下載下來: ( uao250-b2u.big5.txt , uao250-u2b.big5.txt ) Google以上檔名或「Unicode補完計畫」可以找到相關資源, 以下僅列舉看到的相關連結: (若仍有版權相關疑慮, 還麻煩站內信告知, 感謝) https://moztw.org/docs/big5/table/uao250-b2u.txt https://moztw.org/docs/big5/table/uao250-u2b.txt 將相關檔案下載下來並放置在 ~/pttbbs/common/sys/ 目錄裡後 此時請先按照 pyutil 裡面有一個檔案 big5_gen.py 所附上的指示執行: $ cd pyutil $ ./big5_gen.py > big5_tbl.py 此時相關編碼問題即可解決 之後我是直接執行相關程式並自行將相關輸出的記錄放在 ~/log/ 目錄裡備用 (如果有更好的方法還麻煩補充..) $ python ~/pttbbs/daemon/postd/postd.py &>> ~/log/postd.log & $ python ~/pttbbs/daemon/commentd/commentd.py &>> ~/log/commentd.log & 即可讓程式開始執行 然後如果就 BBS主程式 而言還有執行的話可以先 Kill 掉後重新啟動 或reboot重新開機後, 再執行 postd.py commentd.py 等相關指令 同理, 之後也可將這些執行腳本放到 /etc/rc.local 或是其他類似設定檔 這樣開機後就可以自動啟用此類功能了 -- ▄▅◣ ◢▆▄ ┼─── ◢████◣ ◢▄▅▄◣ ◢████◣ 敲敲hh,呼叫小天使 ◢█" █◣ ◢██" █◣ ∕/ █◤ ◥▄▅▄◤ ◥█ \﹨ ██◣雖然不是無時無刻都在, ◢█/ ██◤ ψ阿鬼 ◥██\ █◣ ◤ ◥ 但祂會盡力地服務您。─┼ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.101.29 ※ 文章網址: https://www.ptt.cc/bbs/PttCurrent/M.1496504056.A.EB6.html 這邊沒有介紹到全部相關的外部程式, 像是daemon裡還有一些: 1. 可以跟 Ptt 網頁介面連結的程式 2. (可能Ptt等級的人氣才會用到的) 海量登入前導程式 3. 小天使相關程式與統計外部程式 等之後有更多資訊再補充, 或麻煩其他板友分享這樣 == 已將之後修正的相關內容放到 github 的 wiki 上 如果有需要指正的也可以直接到那裡編輯文件: https://github.com/ptt/pttbbs/wiki/ ※ 編輯: holishing (140.116.101.37), 09/20/2017 22:53:55