怎样部署Firebird BBS

2015年2月10日 | 分类: 【技术】

【介绍】

火鸟BBS(英语:FireBird BBS system)是目前中国大陸常见的BBS系统之一。

该系统安装方便,支持平台多,编译、修改都比较容易,最新版本是2.66M简体中文版,该版本在 GNU General Public Licence下发行,可任意拷贝及修改。

http://zh.wikipedia.org/wiki/Firebird_BBS

【技术栈】

https://lytsing.gitbooks.io/ytht-bbs/content/
https://www.zhihu.com/question/50123178

【软件:服务器端】

https://github.com/fbbs/fbbs
https://github.com/bojieli/firebird-bbs/blob/master/Welcome

【软件:客户端】

Cterm客户端:

【历史】

原文:https://bbs.csdn.net/topics/40343283

在远程应用中,我们不得不提一下BBS。Telnet BBS,是我们通常登录BBS的手段。这里我们就来详细看一下。我们是如何远程登录论坛的。那么我们现在提到的 BBS ,通常指的都是Telnet BBS ,用一个 term 软件连接上,就可以看到文本的界面,比起如今花哨到无以复加的 WWW BBS 们来可谓是简陋到了极点,然而就是这样的 BBS,无数人每天面对它长达两位数小时还乐在其中,恐怕 UI 设计专家们知道也要气到吐血。

也不时有人发表预言,预言 Telnet BBS 将很快消亡而被更加富有表现力的WWW BBS 全面取代,只是年复一年,当年的预言者已经消失不见,BBS 上的用户数目却翻了一番又一番。。。这就是 Telnet BBS 的魅力。 Telnet BBS 系统数目众多,但是从根源找起,大致可以分成两大家族,Firebird BBS 和 Maple BBS,在大陆 Firebird BBS 的变种占据了绝对优势,在台湾地区则是 Maple BBS 的天下,由于台湾地区计算机发展历史比较长,因此 BBS 的人气也比大陆高,同时上站人数过万的站点有好几个,不过大陆毕竟有着人口优势,近年来教育网几大 BBS 的人数也迅速增长。

下面我们就分别介绍这两大 BBS 家族。

首先是在大陆最为流行的 Firebird BBS ,最有名的 SMTH BBS, YTHT BBS, Firebird 2000 三大流派都是由此而来。很久很久以前,有那么一群大学生,也可能是科研机构的研究员什么的,他们整天在Unix 主机上面打滚,觉得要是能在主机上面做一个论坛样的东西多好,于是他们就写了一个命令行程序,运行这个程序,操作者可以在界面下面留言,为了让多个人同时可以操作这个系统 ,他们把这个程序设置为系统某个用户的 shell ,每个 telnet 上该主机的用户,只要使用这个用户的用户名和密码登陆,就可以进行交流。这就是 Internet BBS 的雏形。经过一段时间的发展,这个系统具有了相当多的交互功能,用户不仅可以留言,还可以互相发送信件,发送信息,看到同时在线的用户等等。 BBS 系统的开发者们为了让更多的人能使用这个系统并完善之,将BBS 系统以开源协议发布于网络上面。只要拥有Unix 主机,就可以取得源代码并安装BBS 系统。因此BBS 系统以很快的速度发展起来。

在众多BBS 系统中,某个叫做 Pirate BBS ,经过某些人修改后叫做 Eagle BBS 的分枝,流传入了台湾地区,交大资讯工程系从他发展出了 Phoenix BBS,Phoenix BBS 是如今大部分中文 Telnet BBS 系统的祖先,然而它的名字却远不如其后辈响亮,在它的基础上由中正资工进一步修改的 BBS 系统,被赋予了那个大陆 BBS 开发者耳熟能详的名字――Firebird BBS。应该说, BBS 系统在传入台湾地区时候虽然功能还比较简陋,但是 BBS 系统的基本架构已经定型,比如多进程模型,共享内存信息交换,利用系统信号来传递呼叫消息,用文件存储文章和索引等,这些设计在现在的 BBS 系统中大部分还在沿用,其中不少设计即使现在来看,也是相当标准有效的多进程 Unix 服务器设计。

Telnet BBS 是一种流行于大学和研究机构中的电子公告牌系统,和时下流行的Web BBS 系统不同,BBS 的界面采用纯文本方式表现,用户使用终端软件连接BBS 系统,文本界面在服务器端生成并发送出来,客户端软件仅原样显示文本内容,属于一种瘦客户机的应用。Telnet BBS(后面除非特殊提到,否则简称BBS)在台湾地区和大陆的教育网地区比较流行,比较大规模的站点在线人数一般都在万人以上。由于历史原因,BBS 系统采用的是Unix 下相当传统的1:1 多进程模型,每进程处理一个连接的模型,此种模型的好处是服务相对比较稳定,不会因为一个用户出错导致整个系统的不可用,但是也带来耗费资源较多和进程之间通信比较困难的问题。BBS 服务器端的复杂逻辑也使得分布式设计很难实施。因此BBS 通常是单机承担几乎所有负载,大陆地区较大规模的BBS 服务器上经常同时保持超过7000 进程,台湾地区的BBS 站甚至有并发20000 进程以上的纪录。我们在维护大型bbs 站点的过程中,积累了一些优化和维护如BBS 这样高并发进程服务器的经验,考虑到1:1 进程模型服务仍然有很广泛的应用,在这里写出和读者共享。优化服务器是综合性的工作,不仅需要修改代码,还需要调整系统参数,包含有很多琐碎的内容,根据目的来讲,大致可以根据节约资源的类型分为磁盘IO 优化,内存优化,和CPU 优化等几方面。

【历史:Freecity BBS】

原文:https://baike.baidu.com/item/Freecity%20BBS/7943271

Freecity BBS是基于Firebird BBS 3.0 (edwardc) 的 BBS 系统,运行于浙江大学飘渺水云间 BBS 站以及浙江大学海纳百川 BBS 站。

zz自撰写中的 Freecity BBS 文档
Freecity BBS 的祖先和兄弟
神说,要有光,于是有了光;
神说,要灌水,于是有了 BBS。
–kxn
kxn 在《重负载Telnet BBS 系统优化和维护经验谈》一文中,对于 BBS 的历史作了一段简明扼要的介绍,这段文字我相信对于读者了解 BBS 的有相当的帮助。
我们现在提到的 BBS ,通常指的都是 Telnet BBS ,用一个 term 软件连接上,就可以看到文本的界面,比起如今花哨到无以复加的 WWW BBS 们来可谓是简陋到了极点,然而就是这样 的 BBS,无数人每天面对它长达两位数小时还乐在其中,恐怕 UI 设计专家们知道也要气到吐血。 也不时有人发表预言,预言 Telnet BBS 将很快消亡而被更加富有表现力的 WWW BBS 全面取代, 只是年复一年,当年的预言者已经消失不见,BBS 上的用户数目却翻了一番又一番。。。这就是 Telnet BBS 的魅力。
Telnet BBS 系统数目众多,但是从根源找起,大致可以分成两大家族,Firebird BBS 和 Maple BBS,在大陆 Firebird BBS 的变种占据了绝对优势,在台湾地区则是 Maple BBS 的天下,由于 台湾地区计算机发展历史比较长,因此 BBS 的人气也比大陆高,同时上站人数过万的站点有好几 个,不过大陆毕竟有着人口优势,近年来教育网几大 BBS 的人数也迅速增长。下面我们就分别介绍这两大 BBS 家族。首先是在大陆最为流行的 Firebird BBS ,最有名的 SMTH BBS, YTHT BBS, Firebird 2000 三大流派都是由此而来。
很久很久以前,有那么一群大学生,也可能是科研机构的研究员什么的,他们整天在Unix 主机上面打滚,觉得要是能在主机上面做一个论坛样的东西多好,于是他们就写了一个命令行程序,运行这个程序,操作者可以在界面下面留言,为了让多个人同时可以操作这个系统 ,他们把这个 程序设置为系统某个用户的 shell ,每个 telnet 上该主机的用户,只要使用这个用户的用户名和 密码登陆,就可以进行交流。这就是 Internet BBS 的雏形。经过一段时间的发展,这个系统具有 了相当多的交互功能,用户不仅可以留言,还可以互相发送信件,发送信息,看到同时在线的用户等等。
BBS 系统的开发者们为了让更多的人能使用这个系统并完善之,将BBS 系统以开源协议发布 于网络上面。只要拥有Unix 主机,就可以取得源代码并安装BBS 系统。因此BBS 系统以很快的 速度发展起来。在众多BBS 系统中,某个叫做 Pirate BBS ,经过某些人修改后叫做 Eagle BBS 的 分枝,流传入了台湾地区,交大资讯工程系从他发展出了 Phoenix BBS,Phoenix BBS 是如今大部分中文 Telnet BBS 系统的祖先,然而它的名字却远不如其后辈响亮,在它的基础上由中正资工进 一步修改的 BBS 系统,被赋予了那个大陆 BBS 开发者耳熟能详的名字――Firebird BBS。
应该说, BBS 系统在传入台湾地区时候虽然功能还比较简陋,但是 BBS 系统的基本架构已经定型,比如多进程模型,共享内存信息交换,利用系统信号来传递呼叫消息,用文件存储文章 和索引等,这些设计在现在的 BBS 系统中大部分还在沿用,其中不少设计即使现在来看,也是相当标准有效的多进程 Unix 服务器设计。
Telnet BBS 是一种流行于大学和研究机构中的电子公告牌系统,和时下流行的 Web BBS 系统不同,BBS 的界面采用纯文本方式表现,用户使用终端软件连接 BBS 系统,文本界面在服务器端生成并发送出来,客户端软件仅原样显示文本内容,属于一种瘦客户机的应用。Telnet BBS(后面除非特殊提到,否则简称BBS)在台湾地区和大陆的教育网地区比较流行,比较 大规模的站点在线人数一般都在万人以上。
–kxn
Freecity BBS 实际上也是 Firebird BBS 的一个分支,这个从 Freecity BBS 的源代码里面可以看到:
src/pure.c
/*
Pirate Bulletin Board System
Copyright (C) 1990, Edward Luke, [email protected]
Eagles Bulletin Board System
Copyright (C) 1992, Raymond Rocker, [email protected]
Guy Vega, [email protected]
Dominic Tynes, [email protected]
Firebird Bulletin Board System
Copyright (C) 1996, Hsien-Tsung Chang, [email protected]
Peng Piaw Foong, [email protected]
Firebird Bulletin Board System — Version 3.0 series
Copyright (C) 1999, Peng Piaw Foong, [email protected]
Edward Ping-Da Chuang, [email protected]
Freecity Bulletin Board System
Copyright (C) 2007, freecity.cn
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
代码里面保留了 Firebird BBS 的版权声明,由此可见,Freecity BBS 的祖先也是 Firebird BBS。
对于 Freecity BBS 可考的来源而言,应该是从原浙江大学西子涣纱城 BBS 站过来的。由于无法联系到西子涣纱城的站长,所以无法得知从 Firebird BBS 到西子涣纱城所采用的那套代码中间经历了如何的波折。
从 Freecity BBS 的源文件中可以找到一些残留的痕迹,表明了 Freecity BBS 从 Firebird BBS 主干分支的时间。底下列出的是 Freecity BBS 源代码包中 ChangeLog 的头部。
ChangeLog
This file contains a list, in reverse chronologocal order.
20000726-SNAP
* 修正 0220/0311 版无法在 Solaris 下执行的问题
* 修正 innbbsd 的问题, 并把原来的 bbsnnrp antispam patch 移除,
原先的 black.list 已经取消, 如欲继续使用可在 util/innbbsd/Makefile
的 OPT = 後加上 -DANTISPAM
* 预设使用 NoCeM-innbbsd 0.66 版, 并加入目前常见的 Issuer, 且预
设接受其 NCM Notify
* 修正被版主deny掉的user依然可以由其他版或自己信箱中把信弄到版上
(by Ghostrider)
* 暂时移除呼叫逾时机制
* 修改了 mail2bbs mailing list module 的部分功能, 改用 maillist
这个账号来接发信件至 mailing list
* 修正在空精华区目录按 Ctrl+C 想要转贴文章时造成断线的错误
* 修正 horoscope/birthday 两个程式在某些平台下会有 SIGSEG 的错误
* 将 in.zbbsd 与 telnetd 从 source tree 中移除
* 文件及范例的修正
由于 Freecity BBS 的更新日志改由在文档中体现,所以底下的 20000726 应该就是 Freecity BBS 最后一次跟 Firebird BBS 主分支更新的时间。由此可见,Freecity BBS 从 Firebird BBS 主干中分支的时间,应该就是在 2000 年前后。
根据这个记录和源代码中在 Freecity BBS 之前的最后一段版权声明,可以进一步确定:Freecity BBS 的源,是由台湾中正大学资讯工程学系 Edward Ping-Da Chuang 所编写的 Firebird BBS 3.0 。而 Firebird BBS 3.0 的发布标志着 BBS 黄金时代的开始(BBS 的“黄金时代”这一说法来自 所著的《BBS 之前世今生》)。而它的后裔还有 Firebird 2000 / Lily BBS。
BBS 黄金时代开始的标志性事件,除了这个里程碑式的 Firebird BBS 3.0 的发布以外,还有另外一个鼎鼎有名的 Firebird 分支的发布,这就是由清华大学计算机系 KCN 所编写的 Firebird BBS 3.0K 。 而后者成为了中国大陆绝大部分 BBS 分支的祖先,其子嗣中包含了著名的 SMTH BBS,YTHT BBS。
而 Firebird BBS 3.0 和 Firebird BBS 3.0K 的共同祖先就是 Firebird BBS 2.0。
由此可见,Freecity BBS 是由 Firebird BBS 3.0 为源头发展的一支相对独立的分支,它和它的近亲——LILY BBS——和远亲——YTHT BBS、SMTH BBS——有着共同的祖先,这就是 Firebird BBS 2.0 。而不同于它的兄弟姐妹们,Freecity BBS 由于历史原因一直未能实现正式发布,导致 Freecity BBS 的代码一直仅仅在浙江大学飘渺水云间 BBS 站运行,成为了中国大陆 Firebird BBS 家族少见的独根苗。
Freecity BBS 的代码从独立发展开始,就一直是处于自我维护和发展的状态。不过由于国内 BBS 的大发展和转信的普遍开通,实际上 Freecity BBS 的发展也或多或少得吸收了其它分支的一些开发经验,尽管 Freecity BBS 的独立发展不是一个绝对的概念,但是 Freecity BBS 相对于其祖先和兄弟姐妹的变化是在飘渺水云间 BBS 站历届技术人员的修改下完成的。这也是 Freecity BBS 相对于它的家族中其它兄弟姐妹而言具有自己独特的性格的一个原因。
此文撰写于 Freecity BBS 正式发布之前,谨以此纪念中国大陆 BBS 的黄金时代和 Freecity BBS 以及其它 BBS 发展的辉煌历程。

【安装】

原文:https://bbs.csdn.net/topics/40343283

火鸟BBS(FirdBird BBS system)系统是目前国内比较常见的BBS系统,该系统安装方便,支持平台多,编译、修改都很容易,最新版本是2.66M简体中文版,该版本在 GNU Public Licence下发行,可任意拷贝及修改,本文将笔者在Linux系统下安装与维护火鸟BBS系统的经验介绍给大家,仅供参考。

一、安装火鸟BBS系统

1.安装之前

首先,必须考虑计算机配置是否足够应付日益增多的上站人数?一般情况下,内存是最重要的,其次是硬盘。大约32MB内存可以支持大约30人同时访问,而信件和讨论区的文章大约每篇1~2KB,因此,速度快、容量大的硬盘是首选。

2.取得软件

国内很多站点有FireBird BBS系统源代码供大家自由下载,比如网易的FTP站点(ftp://ftp.netease.com/pub/bbs),文件名是FirebirdBBS2—66M—GBCoded.tgz,文件大小为776KB。找到后,用FTP上传到/home目录下,使用下面的命令把这个文件展开:

tar zxvf FirebirdBBS2—66M—GBCoded.tgz

展开后,在/home下会建立bbsadm目录,含有BBS系统全部的源代码及技术文档。

3.建立用户

在安装BBS系统之前,先在系统中加入以下三位使用者,可以直接用Vi在/etc/passwd文件内加入以下内容(也可以使用adduser命令增加):

bbsadm::9990:99:BBS admin and developer:/home/bbsroot:/bin/csh

bbs::9999:99:BBS user:/home/bbs:/home/bbs/bin/bbsrf

bbsuser::9999:99:BBS user:/home/bbs:/bin/csh

4.设定BBS组用户及shell程序

为方便管理目录的读写权限,在Vi下编辑/etc/group,加入以下内容:

bbs:*:99:bbs,bbsuser,bbsadm

在 /etc/shells 中加入 /home/bbs/bin/bbsrf。

在 /home下建立 bbsadm 和 bbs 两个目录:

chown bbsadm.bbs bbsadm

chown bbs.bbs bbs

5.设定BBS系统环境

从bbsadm登录到Linux,在/home/bbs—src/ 目录下执行cd CONFIG ; ./configure

执行的过程如下:

Home directory of BBS → [/home/bbs] → bbs 目录所在

UID of BBS → [9999] → bbs 的系统 User ID

GID of BBS → [99] → bbs 的系统 GID

ID of BBS admin → [9990] → bbsadm 的系统 UID

The ID of your site → [NoName] → 贵站的英文代号

The name of your site → [Hibiscus Realm BBS] → 贵站名称

The domain name of your site → [some.where] → 贵站域名

The ip address of your site → [127.0.0.1] → 贵站 IP address

Maximum number of users → [20236] → 最大使用人数

Maximum number of boards → [256] → 开版最大数目

Maximum number of on-line users → [256] → 最大同时上线

人数

Show idle time of BBS users ? → [Y] → 显示 idle 时间

………………………………….

updating cache ./config.cache

creating ./config.status

creating Makefile

creating config.h

creating Install.sh

6.编译BBS系统前的准备

configure会生成必要的 Makefile 文件。顺利的话,应该可以在 bbs—src/ 目录下找到Makefile。若有必要,可以再用Vi手动修改。

在 /home/bbs—src/ 下编辑 config.h,在编译之前可对它作一些手动的修改。同一个目录下可找到chat.h, 可以更改 chat room 的 port number 和名字。

7.编译BBS系统

在/home/bbs—src/下执行 make,开始进行编译,这个过程大约要运行1~2分钟。如果你是按照本文所要求的配置进行的话,那么,/home/bbs—src/目录下就会产生bbs、 bbsrf、chatd 以及 thread 这四个可执行文件。表明BBS系统的编译工作已经完成。

8.安装BBS系统

以root登录Linux, 在 /home/bbs—src 目录下执行:

make install

make installchatd

make installthread

至此,安装工作完成。

二、初始化火鸟BBS系统

1.取得SYSOP权利

Telnet到BBS主机,然后以bbs登录, 可见到 BBS的Login画面。此时,当BBS系统要求输入ID时,请输入New,以便注册一个新使用者。由于名称为SYSOP的使用者拥有一切权利,因此您必须先注册为SYSOP,并且设定密码。请注意:SYSOP必须完全大写。

接下来,再替guest登记账号,此账号为BBS的参观账号,不需输入密码即可进入BBS。如果不想提供guest账号,可以略过此步骤,记住把guest 加入“不可注册之ID”的名单内。通常guest账号是只能参观,不可发言的,因此不具有发表文章或聊天的功能。

2.修改/home/bbs/etc/sysconf.ini

以下简要说明sysconf.ini中各选项的含义:

# comment

BBSHOME =“/home/bbs” ←设定 BBS 的 home directory

BBSID = “MSIA” ←设定 BBS 的 ID

BBSNAME = “大红花的国度” ←设定 BBS 的中文站名

BBSDOMAIN=“MSIA.pine.ncu.edu.tw” ←设定BBS的

Domain Name

BBSIP = “140.115.210.77” ←设定 BBS 的 IP Address

KEEP—DELETED—HEADER = 0 ←设定讨论区被砍文章

是否保留被砍标题

EMAILFILE = “etc/mailcheck” ←如果把这行前面加上

# 就不寄身份确认信

#NEWREGFILE = “etc/newregister”←如果把这行前面

# 拿掉就有新手三天限制

注意:修改完sysconf.ini后,请转到BBS主选单,按shift +′~′ 或者删除掉 /home/bbs/sysconf.img,以便更新系统设定

3.修改/home/bbs/etc/menu.ini

在 %S—MAIN 与 % 中的文字都作为背景。

下面的一行是menu.ini中标准的一行,如果前面加上“#”,表明禁止这一行起作用;M—EGROUP中的“E”表示这一行代表的选单可以按“E”进入;(3,0)表示从第3行0列开始显示;如果是(0,0)表示接着上一行显示;后面的“0”表示不限制任何权限,可以自由使用;如果这一项是“PERM—BASIC”,表示需要具有基本权限才能使用。

!M—EGROUP 3, 0, 0, “EGroup”, “E) 分类讨论区”

4.修改/home/bbs/etc/mailcheck文件

这个文件是在做身份确认的时候,回复给注册者的信笺内容,如果你的站点需要身份确认,那么必须更改。

5.修改/home/bbs/etc/newregister注册说明文件

说明注册后具有的权利。

三、火鸟BBS系统维护

在home/bbsadm/bbs—src/local—utl下有一些程序, 安装BBS系统时并未安装,可以参考以下的说明来安装这些外部程序,以帮助我们完成一些感兴趣的工作。

1.上站人数统计

修改/home/bbsadm/bbs—src/Makefile,把-DINVISIBLE去掉后重新make bbsrf。

接下来,到/home/bbsadm/bbs—src/local—utl下,修改averun.c的内容,将其中的站点名字改为你自己的中文站名, 然后编译这个程序:

gcc -o averun averun.c

把编译好的averun拷到/home/bbs/bin,并在/home/bbs/下建立cron.bbs,加入以下内容:

0,5,10,15,20,25,30,35,45,50,55 * * * * (/usr/bin/uptime >> /home/bbs/reclog/uptime.log)

57 * * * * (/home/bbs/bin/averun /home/bbs/reclog/uptime.log;/bin/rm /home/bbs/reclog/uptime.log)

56 0 * * * (/bin/mv /home/bbs/0Announce/bbslist/today /home/bbs/0Announce/bbslist/yesterday; /bin/rm /home/bbs/reclog/ave.src)

然后用bbsuser的身份登录Linux, 建立/home/bbs/reclog目录,用来存放统计用的资料。之后,再进入BBS的精华区,在精华区主目录建立一个bbslists目录(用g功能),在bbslists目录下建立两个文件:一个叫today(今日上站人数统计),另一个叫yesterday(昨日上站人数统计)。然后返回Linux提示符, 在/home/bbs/目录下,用bbsuser身份执行crontab cron.bbs,以后系统就会自动更新这两个文件的内容。这样,在每次上线的时候,用户就会看见每5分钟更新一次的上站人数统计了。

2.十大热门话题统计

进入home/bbsadm/bbs—src/local—utl目录,编译poststat.c:

gcc -o poststat poststat.c

再把poststat拷贝到/home/bbs/bin目录下,建立/home/bbs/etc/posts目录

进入BBS,在bbslists目录下建立四个新文件day、week、month、year,分别是本日十大热门话题、 本周十大热门话题等。然后用bbsuser登录Linux,把/home/bbs/etc/posts下的对应文件连接至这里:

rm ~bbs/0Announce/bbslists/day

ln -s day ~bbs/0Announce/bbslists/day

其余依此类推。再修改/home/bbs/cron.bbs,加入如下叙述:

10 * * * * (/home/bbs/bin/poststat /home/bbs)

在/home/bbs/目录以bbsuser身份执行crontab cron.bbs,之后每隔1小时会做一次统计。

3.安装自动登录BBS shell

首先你必须安装standalone-telnetd→这个telnetd Daemon,这个Daemon取代原先的in.telnetd管理的port 23(telnet协议所用的默认的口地址), 当有用户telnet过来时,便自动执行一个进程, 然后自动login:bbs。

(1)去上面说的Linux资源中找到telnetd—stmo.tgz,把这个文件下载到本地。

(2)展开 telnetd—stmo.tgz后,把OS.list拷贝到/usr/local/etc下。这个文件内容是一堆操作系统的名称,以后在别人登录的时候,随机取其中一行内容, 当别人telnet登录过来时显示,别人就搞不懂你这个站点到底是什么系统的了。

(3)把telnetd拷贝至/usr/sbin下。

(4)修改/etc/inetd.conf,找到以下的内容:

telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd

把其中的telnet改成telnet1。

(5)修改/etc/services,在最后一行加上

telnet1 2000/tcp # previous in.telnetd daemon

(6)查找inetd的进程号,并取消进程。

ps aux |grep “inetd”

kill -HUP (上面找到的PID进程号)

重新启动inetd (或重新开机也可)。

此时, 使用者telnet到你服务器的2000口时,就执行你原来的shell,便会出现原先的login画面。这时,你就可以使用原来的账号登录了。

【安装】

火鸟BBS有许多的变体,例如水木清华BBS使用的KBS论坛系统。KBS 是一个高性能的,稳定的,基于 telnet、SSH 和 Web 界面的电子公告牌系统,全称为The K Board System。KBS 支持多种不同的操作系统: Linux、FreeBSD、Solaris、Windows(需要Cygwin),支持32位和64位的操作系统。

KBS论坛系统:

KBS安装指南

  1. 一些环境准备
    虚机(virtualbox 5.1+, 比如5.1.26)环境搭建
    如果没有开启vt,需要开启,首先开机进入BIOS,Security,Virtualization,选择Enable即可
    安装ubuntu12.04.5,地址 :
    http://mirrors.163.com/ubuntu-releases/12.04/ubuntu-12.04.5-desktop-amd64.iso
    比较古老的32位的或不支持vt技术的cpu选择:
    http://mirrors.163.com/ubuntu-releases/12.04/ubuntu-12.04.5-desktop-i386.iso

虚机网络断开安装,否则会自动安装更新,耗时比较久,
virtualbox – 显示 – 启用3d加速
安装过程中,配置用户名设置为 bbs

安装完成后去掉iso挂载,网络选择网络地址转换NAT,重启后

virtuabbox, 设备-安装增强功能(和主机共享文件)
df 查看光盘挂载地址
cd /media/VBOXADDITIONS_5.1_xxxx (xxxx为上面命令结果补全)
sudo ./VBoxLinuxAdditions.run

重启,设备 – 共享文件夹, 选择windows主机的文件夹映射为 bbs目录为共享目录,选择固定分配,自动挂载
sudo mount -t vboxsf bbs /mnt

添加国内源
sudo vi /etc/apt/sources.list

删除文本所有内容,添加:

1
2
3
4
5
6
7
8
9
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ precise-security main restricted universe multiverse

修改一下vim打开文件的编码方式,否则后续编辑有可能显示乱码
vim ~/.vimrc
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936

  1. 安装 sudo ./php_apache.sh 安装合适的 php, apache, mysql 等依赖库
    php_apache.sh 的内容:

apt-get update &&
apt-get install -y zlib1g-dev &&
apt-get install -y autoconf &&
apt-get install -y automake &&
apt-get install -y libtool &&
apt-get install -y libgmp3c2 &&
apt-get install -y libgmp3-dev &&
apt-get install -y openssl &&
apt-get install -y apache2 &&
apt-get install -y libapache2-mod-php5 &&
apt-get install -y php5-dev &&
apt-get install -y php5-gd &&
apt-get install -y bison &&
apt-get install -y byacc &&
apt-get install -y tree &&
apt-get install -y libcurl4-openssl-dev &&
apt-get install -y dos2unix &&
apt-get install -y libpcre3 &&
apt-get install -y libpcre3-dev &&
apt-get install -y libmysqlclient-dev &&
apt-get install -y php5-mysql &&
apt-get install -y sendmail &&
apt-get install -y php-pear &&
apt-get install -y sqlite3 &&
apt-get install -y libsqlite3-dev &&
apt-get install -y git &&
apt-get install -y mysql-client &&
apt-get install -y mysql-server &&
apt-get install -y curl &&
apt-get install -y libboost-dev &&
apt-get install -y libboost-test-dev &&
apt-get install -y libboost-program-options-dev &&
apt-get install -y libboost-system-dev &&
apt-get install -y libboost-filesystem-dev &&
apt-get install -y libevent-dev &&
apt-get install -y pkg-config &&
apt-get install -y g++ &&
apt-get install -y libglib2.0-dev &&
apt-get install -y libgtk2.0-dev &&
#apt-get install -y librdkafka-dev librdkafka1 &&
apt-get install -y python-dev &&
apt-get install -y openjdk-7-jre openjdk-7-jdk

安装过程提示输入mysql密码,设置的是beautiful,如设置别的密码,后续使用mysql相应修改

拷贝一些头文件,编译kbs会用到
sudo cp /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h /usr/include/
sudo cp /usr/lib/jvm/java-7-openjdk-amd64/include/* /usr/include/ -a
sudo cp /usr/lib/jvm/java-7-openjdk-amd64/include/linux/* /usr/include/ -a

thirft使用 thrift-0.10.0.tar.gz (version 0.11.0/0.12.0在ubuntu12.04未能编译通过)
kafka使用 librdkafka-1.0.1.tar.gz (低版本有函数未定义)
两者编译安装
./configure –prefix=/usr && make && sudo make install

  1. 安装kbs
    解压kbs到/home/bbs/src目录

src/Makefile.am
local_utl/Makefile.am
daemon/Makefile.am
libBBS/Makefile.am
几个文件的 LDADD 增加 -lrdkafka

./autogen.sh
./configure –prefix=/home/bbs –enable-site=newsmth –with-php –with-mysql

vi /etc/passwd, 找bbs的userid, grpid, 我这里是1000,1000, 更新到 site/newsmth.h 的 BBSUID, BBSGID

site.h, src/extra.h 中暂时去掉以下KBS宏定义 (暂未编译通过)

//#define ENABLE_LIKE 1
//#define ENABLE_REFER_LIKE

src/bbs.c 屏蔽函数 recommend_tg
src/talk.c 屏蔽函数 display_user_summary display_userinfo
libBBS/libbm.c 屏蔽函数 AO_int_fetch_and_add
libBBS/extra.c 屏蔽函数 AO_int_fetch_and_add
local_utl/awardonline.c 屏蔽函数 AO_int_fetch_and_add

修改php模块待安装目录的权限
sudo chown bbs:bbs /usr/lib/php5 -R

make
make install
make install-home