本文由 ytht系統維護組負責維護。
在參閱多人文章後整理得到。
您認為在本文中發現了懷疑有錯的地方,或是不通的語句、錯字别字,請與[email protected]聯系。
準備工作:
1:确認安裝了常見開發軟體包,如 gcc ,autoconf,automake等
2:如果要安裝運作web服務,确認安裝了apache伺服器
3:有root權限,同時不要過分使用,否則很容易出權限問題
4:可以不安裝mysql, fastcgi等軟體,這些可以在完善系統時考慮
5:了解su useradd passwd cvs 等指令的使用,和環境變量的知識
下面以rh9環境說明ytht的安裝。
過程中沒有提到安裝錯誤,如果遇到,請參閱本文後面的補充說明。
一: 建立bbs使用者
使用下面的指令建立使用者
$ su -
[root]# useradd -u9999 -g99 -d /home/bbs bbs
[root]# passwd bbs
添加bbs帳戶,使用者id是9999,組id是99,初始目錄是/home/bbs ,目錄可以按照需要改動。
二:獲得ytht最新代碼
下載下傳ytht的源代碼,并放在/home/src目錄下,:
[root]# cvs -z9 co -d /home/src bbs #這步可以省掉,但是你應該知道代碼放的位置
把代碼屬主更改成bbs:
[root]# chown -R 9999.99 /home/src
下面開始安裝telnet服務的安裝
三:配置編譯參數
現在不需要用root權限,換成bbs使用者吧。
[bbs]$ cd /home/src
[bbs]$ ./makedist.sh
[bbs]$ ./configure
注意 checking for xxx 資訊,如果出現 no,表明有的服務暫時不能使用。但不影響基本服務的安裝
然後出現:
Home directory of BBS --> [/home/bbs]
UID of BBS --> [9999]
GID of BBS --> [99]
USER of BBS --> [bbs]
The ID of your site --> [YTHT]
The name of your site --> [一塌糊塗 BBS]
The domain name of your site --> [ytht.net]
The ip address of your site --> [162.105.31.222]
The location of your site --> [北京大學]
Email of your bbs administrator --> [[email protected]]
Maximum number of users --> [250000]
Maximum number of boards --> [1000]
Maximum number of on-line users --> [30000]
Runtime Maximum number of on-line users --> [30000]
BBS listen port --> [23]
BBS listen port(BIG5) --> [2300]
MySQL DATABASE NAME --> [test]
MySQL USER NAME --> [test]
MySQL USER PASSWORD --> [test]
cgi install directory --> [/home/httpd/cgi-bin]
html install directory --> [/home/httpd/html/2001]
the initial mark string for webpage --> [Ytht.Net]
上面的資訊,按照實際情況填寫,如果不滿意,可以重新運作 ./configure ,再次填寫。
更多内容,請參閱 bbsconfig 檔案。
四:編譯源代碼并安裝telnet服務
[bbs]$ make
這一步會自動編譯安裝 /home/src/ythtlib 和 /home/src/libythtbbs 下的内容,并編譯
/home/src/src 和 /home/src/local_utl 下的内容。編譯通過後, 繼續運作:
[bbs]$ make install
這一步會建立 bbs 的目錄系統,并安裝 /home/src/local_utl 和 /home/src/src 下的可
執行程式到 bbs 的 bin 目錄。
如果已經存在/home/bbs目錄,會出現提示: Warning: /home/bbs already exists, overwrite whole bbs
輸入 y 繼續,請特别注意,如果以前安裝過bbs, 會覆寫很多東西,比如 .BOARDS 檔案,導緻新開的版丢失;
.PASSWDS檔案,導緻所有的使用者資料丢失;就這兩樣你就知道這個操作的危險性了。
是以,隻有在首次安裝bbs 或者完全重新安裝時,才可以在/home/src 目錄下使用 make install。
為了更高效的運作telnet服務,加入下面工作:
[root]# mount none /home/bbs/bbstmpfs -t tmpfs -o size=128m
[bbs]$ cd /home/bbs
[bbs]$ ln -s /home/bbs/bbstmpfs/tmp tmpfast
[bbs]$ ln -s /home/bbs/bbstmpfs/dynamic dynamic
初始化 shm:
[bbs]$ /home/bbs/bin/shminit
運作bbsd 守護程式:
[root]# /home/bbs/bin/bbsd
到此,telnet 服務基本安裝完成!
五:登入注冊 SYSOP 和 guest 賬号
注意 SYSOP 賬号的大小寫。
到此,就可以輕松一下了。
六:配置web服務
确認安裝了apache,如果沒有,可以用redhat9帶的rpm包安裝;也可以用ytht帶的源代碼安裝,詳情參閱補充說明,此處以rehdat9的預設安裝為例。
修改配置檔案 httpd.conf
本文使用ytht預設參數,故
user 和 group 屬性就是 bbs
cgi-bin目錄的路徑是: /home/httpd/cgi-bin
html目錄路徑是:/home/httpd/html/2001
SMAGIC ,即the initial mark string ,設定的是 Ytht.Net
按照上面的參數修改配置檔案(隻列出修改過的地方),您在設定的時候,請使用正确的參數。:
1. 修改user 和 group 屬性
User bbs
Group bbs
2. 修改cgi-bin的目錄的路徑
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin"
<Directory "/home/httpd/cgi-bin">
3. 修改html目錄的路徑
DocumentRoot "/home/httpd/html/2001"
<Directory "/home/httpd/html/2001">
4. 加上url重寫規則,在配置檔案最後添加上
RewriteEngine on
RewriteRule ^/Ytht.Net(.*)/bbschat(.*) /cgi-bin/www/bbschat [PT]
RewriteRule ^/Ytht.Net(.*)$ /cgi-bin/www [PT]
RewriteRule ^/$ /cgi-bin/www [PT]
七:運作web服務
[root]# /etc/init.d/httpd start
用浏覽器登入,終于看到糊塗的白菜了......
并且能正常登入
發表一下文章看看......正常
到此,想必你已經精疲力盡了。該好好休息一下。
八:補充說明
安裝bbs,沒有不出問題的。是以,必須要有良好的心理素質。
下面的問題,都是經典。不得不看。
1. nobody的組号也是99
把/etc/group中的nobody改成bbs;或者把nobody的組号換成一個其他數,比如98,再建立bbs組,或者不改也可以。
順便說一下, bbs的uid和gid沒有固定的數值,可以是任意的;也沒有固定的id,用sbb也可以。
隻需要在 configure 時候填寫正确的 bbsusername uid gid 即可
2. 運作./makedist.sh時出現下面的錯誤:
cp: cannot stat `/usr/share/automake/config.sub': No such file or directory
cp: cannot stat `/usr/share/automake/config.guess': No such file or directory
cp: cannot stat `/usr/share/automake/install-sh': No such file or directory
在/usr/share目錄下,可能有 automake-1.4 automake-1.5 automake-1.6 ,但沒有 automake 目錄,
是以,修改一下makedist.sh檔案,把/usr/share/automake換成/usr/share/automake-1.6,
或者用下面指令:
[root]# ln -s /usr/share/automake-1.6 /usr/share/automake
此處選擇了版本較高的automake,沒有特别的原因。
3. 運作./configure指令時出現 checking for xxxxxxx no
如果不影響下一步,可以暫時不管。在完善系統時再安裝。當然,現在安裝上更好。具體安裝方法參閱其他文章。(如過還沒有,請到ytht的bbsdev版查找)
4. the initial mark string for webpage是什麼意思?
看個執行個體: http://www.ytht.net/Ytht.NetBNLAAACWVZHCONHFTJTZHNCXDGEEFBVRCWZWP_B/?t=1080891866
~~~~~就是這個
在bbsconfig 檔案中是 LAST_SMAGIC
5. 不想每次運作./configure 時都重新填寫一遍
修改/home/bbs/bbsconfig 檔案 。
6. 關于mount指令
因為tmpfs每次重新開機機器都要mount,于是在/etc/fstab的最後加一行
/home/bbs/bbstmpfs /home/bbs/bbstmpfs tmpfs size=8M 0 0
大小的選擇:一般來說,18000人的站點,tmpfs 尺寸在512M比較合适,
一般的站點,根據自己的記憶體規模和上站人數适當調整即可,
由于核心的配置設定特點,這裡如果配置設定大了,實際上不會浪費記憶體的
7. 為什麼不能把 bbsd 綁定在 23号端口
使用 root 賬号
8. 錯誤提示: please init shm first
沒有運作 bin/shminit 程式
沒有這個程式?忘了在 local_utl目錄下運作 make install 了。
9. 注冊了 sysop 賬号,但不是 SYSOP(注意全是大寫),怎麼辦
重新注冊! 把賬号檔案 /home/bbs/.PASSWDS 删了,或者把檔案中的sysop改成其他賬号名,然後重新注冊。
10. 怎麼配置 httpd.conf 都不能成
運作下面的指令,看看輸出:
export SCRIPT_URL=/
/home/httpd/cgi-bin/www
如果正确,應該是 ytht 的首頁
11. 什麼是“沒有實作的功能”
輸入了不正确的參數給www,比如把login 輸入為 logni ,或者其他一些不知名的原因。
12. 不能看圖
上面的安裝說明中沒有安裝這個附件:atthttpd
到 /home/bbs/src/atthttpd 目錄下運作:
make
[bbs] ./atthttpd
注意:不要 用root賬号,而 是 bbs 賬号
13. 尋找錯誤的蛛絲馬迹
stdout stderr --标準輸出,标準錯誤輸出,其實是指螢幕資訊,大部分的問題都在螢幕上
/home/bbs/deverrlog -- bbs 常見錯誤
/var/log/httpd/* --httpd 服務不正常,就趕緊到這裡來看原因,有的系統可能不在這裡,而在其他地方。
gdb --自己調試吧
14. 怎麼安裝 software 目錄下的軟體
太複雜,這兒提供不了,得在其他文檔中說明。
15. 怎麼安裝 xxx ?
請參閱《安裝xxx》(可能還沒有寫呢,别急,會有的)。
本文參考:
littleflypig的《今天cvs安裝ytht的筆記》
小椰子的《2003.01.10 ythtbbs代碼的安裝步驟》
lepton的《關于BBS代碼安裝使用修改的幾個tips》