文章目錄
  1. 1. 什么是KBS
  2. 2. 安装环境
    1. 2.1. 1.1 安装XAMPP
    2. 2.2. 1.2 安装依赖
      1. 2.2.1. 1.2.1 yum安装autoconf,automake,libtool
      2. 2.2.2. 1.2.2 安装其他依赖
    3. 2.3. 1.3 创建bbs用户
    4. 2.4. 1.4 修改Apache配置文件 /opt/lampp/etc/httpd.conf
    5. 2.5. 1.5 以SVN方式下载 kbsbbs 的源代码
    6. 2.6. 1.6 修改KBS的uid和gid
    7. 2.7. 1.7 运行autogen.sh命令
    8. 2.8. 1.8开始编译安装kbs
    9. 2.9. 1.9 为sshbbsd生成秘钥
    10. 2.10. 1.10 修改bbs文件夹的属性
    11. 2.11. 1.11 启动bbs
  3. 3. 2.1注意事项
    1. 3.0.1. 2.1.1
    2. 3.0.2. 2.1.2
    3. 3.0.3. 2.1.3
    4. 3.0.4. 2.1.4
    5. 3.0.5. 2.1.5
  • 4. 3.1结束语
  • 什么是KBS

    KBS 是一个高性能的,稳定的,基于 telnet、SSH 和 Web 界面的电子公告牌系统,全称为The K Board System。支持多种如Linux、FreeBSD、Solaris、Windows(需要Cygwin)操作系统:

    安装环境

    由于分别安装Apache+PHP+MySQL比较复杂,而且难以管理,个人开发一直习惯使用XAMPP,所以这里是基于XAMPP来安装的,下面开始,注意以下一直都是以管理员身份运行。

    1.1 安装XAMPP

    这里很简单,直接去XAMPP官网下载,然后进入Linux安装帮助界面按照提示一步步安装就OK了,此时我安装的版本是XAMPP for Linux v1.8.3(PHP5.5.11)。默认应该是安装在/opt/lampp/目录下,可以按照官网提示的方法本机测试一下Apache。

    1.2 安装依赖

    1.2.1 yum安装autoconf,automake,libtool

    下面三个都是以SVN方式安装KBS需要的三个依赖

    1
    # yum install autoconf automake libtool

    1.2.2 安装其他依赖

    由于我们已经安装了XAMPP,不需要再安装php,httpd,mysql了,不过为了保险我们还是可以同时也安装的,yum会自动忽略已经安装好的部分,下面我们带上以上三个,yum安装php-devel php-gd php-xml zlib-devel openssl-devel gmp-devel gd libesmtp-devel

    1
    # yum install httpd php php-devel  php-gd   php-xml  zlib-devel  openssl-devel gmp-devel  gd  libesmtp-devel mysql  mysql-devel mysql-server  php-mysql

    1.3 创建bbs用户

    1
    # adduser bbs

    1.4 修改Apache配置文件 /opt/lampp/etc/httpd.conf

    1
    # vim /opt/lampp/etc/httpd.conf

    找到User和Group处,分别修改为bbs

    1.5 以SVN方式下载 kbsbbs 的源代码

    1
    2
    # cd /home/bbs/
    # svn co http://svn.kcn.cn/repos/kbs/trunk/kbs_bbs

    此时开始下载一大串的源代码,代表正常结束

    1.6 修改KBS的uid和gid

    先查看bbs用户的gid和uid是多少

    1
    # id bbs

    然后我们进入/home/bbs/kbs_bbs/site

    1
    2
    # cd /home/bbs/kbs_bbs/site
    # ls

    ls后,我们会看到有fb2k-v2.h和fb2k-v2.c两个文件,这里我们默认使用这两份文件来搭建我们的站点,下面分别修改fb2k-v2.h和fb2k-v2.c的BBSUID和BBSGID

    1
    2
    # vim fb2k-v2.h
    # vim fb2k-v2.c

    另外,如果 后期想要继续安装nForum,建议在此处的fb2k-v2.h中添加以下nForum所需的宏定义,建议添加,方便以后扩展

    1
    2
    3
    4
    5
    6
    #define NFORUM 1
    #define ENABLE_REFER 1
    #define RECORDMAXONLINE
    #define TITLEKEYWORD
    #define MAXTITLEKEY 18
    #define MAXBOARDTITLEKEY 10

    1.7 运行autogen.sh命令

    分别到/home/bbs/kbs_bbs和/home/bbs/kbs_bbs/sshbbsd下运行autogen.sh命令

    1
    2
    3
    4
    # cd /home/bbs/src/kbs_bbs
    # ./autogen.sh
    # cd sshbbsd
    # ./autogen.sh

    1.8开始编译安装kbs

    1
    2
    # cd /home/bbs/src/kbs_bbs
    # ./configure --prefix=/home/bbs --enable-site=fb2k-v2 --with-php --with-mysql=/opt/lampp/mysql --enable-ssh --enable-ssl --with-openssl=/usr --with-libesmtp --enable-innbbsd CFLAGS="-O3 -g"

    注意,这里补充一些常用 configure 参数说明。

    --enable-site=SITE      告诉 kbsbbs 采用名为 SITE.h 和 SITE.c 的站
                            点定制文件,这两个文件必须放在 site/ 目录
    --with-mysql[=DIR]      让 kbsbbs 支持 mysql,DIR 为 mysql 库文件
                            所在目录,如果不指明则自动检测
    --without-mysql         不让 kbsbbs 支持 mysql
    --with-libesmtp[=DIR]   让 kbsbbs 支持 libesmtp,DIR 为 libesmtp 库
                            文件所在目录,如果不指明则自动检测
    --without-libesmtp      不让 kbsbbs 支持 libesmtp
    --with-www=DIR          设定 kbsbbs web 子系统的安装目录,要求 DIR
                            目录下存在名为 html 或 htdocs 的子目录
    --with-php[=DIR]        让 kbsbbs 找到 php 头文件所在目录,如果不
                            指明 DIR 则自动检测
    

    其中/home/bbs赋值给了站点设置所需的$BBSHOME变量,而fb2k-v2则是使用了刚才默认的站点名。然后就可以安装了,这是一个有点漫长的过程

    1
    2
    # make        
    # make install

    由于此处由于是新建的bbs站点,还需要安装默认的站点文件

    1
    # make install-home

    注意今后修改代码编译后只需要执行 make install。make install-home 只需要
    首次安装的时候执行,以后再执行将会覆盖掉之前BBS的所有数据!

    1.9 为sshbbsd生成秘钥

    即设置ssh_host_key

    1
    2
    3
    # cd /home/bbs/etc
    # touch sshd_config
    # ssh-keygen -t rsa1 -f ssh_host_key

    这里提示我们输入口令时,我们默认为空,即双击enter

    1.10 修改bbs文件夹的属性

    由于之前很多操作都是用root执行,可能bbs下很多文件的owner和group不一致,我们一并修改之

    1
    # chown -R bbs:bbs /home/bbs

    1.11 启动bbs

    最后我们就可以启动我们本机上的bbs了

    1
    2
    3
    4
    5
    6
    7
    # cd /home/bbs/bin
    # ./miscd daemon
    # ./bbslogd
    # ./bbsd -p 23
    # ./sshbbsd -p 22
    # cd /opt/lampp/bin
    # ./apachectl start

    然后telnet登陆本机

    1
    # telnet 127.0.0.1

    不出意外应该可以看到一下画面:

    2.1注意事项

    写本篇博客时是第二次安装,仍发现几个问题,在此一并说明

    2.1.1

    SVN服务的安装见扩展阅读1 。

    2.1.2

    由于这里使用的是XAMPP,如果你是分别安装的Apache等,在1.4和1.11中,你的httpd.conf文件和apachectl文件路径可能和这里不一样,请搜索到自己Apache的安装路径,并执行。

    2.1.3

    在1.11中启动bbs时,执行./miscd daemon命令时,可能遇到BUS error提示,此时重复执行一遍./miscd daemon命令即可。

    2.1.4

    在1.11中执行./apachectl start命令时,可能报Adress already in use···的错误,此时说明默认的80端口被占用,可以使用netatat -lnp|grep 80命令查看被哪个进程占用,然后kill -pid结束进程,但是这里我试了试,好像是不管用的,说明应该是个僵尸进程,我们可以使用killall httpd杀死该进程,参数是进程名,这个应该就是httpd进程,然后我们再使用netatat -lnp|grep 80,应该80端口已经被释放了,然后使用/opt/lampp/lampp start,如果显示了Starting Apache…ok,则可以再使用./apachectl start命令,此时应该是ok的了。

    2.1.5

    使用telnet登陆时,首先确保自己安装了telnet服务,如果你是将CentOS装在了虚拟机内,也可以从主机登陆,先确保windows开启了telnet登陆功能,然后在虚拟机中,先解决XAMPP外部访问受限问题,然后关闭CentOS防火墙(iptables stop),就可以从外部输入虚拟机的iptelnet登陆了。

    3.1结束语

    这是本次参加Byr Team培训过程的一个小结,最后项目是基于nForum论坛源代码,在首页添加一个图片轮播的widget,虽然其中遇到很多困难,但最后总算还是完成了任务,也收获了很多,希望有时间也能总结一下期间的感悟,也希望以后有机会再写一遍关于nForum安装的文章。最后加上自己项目的一段动画作纪念。

    扩展阅读:
    1.Centos下安装SVN服务
    2.kbsbbs在Fedora 8上的安装指南
    3.安装配置基于KBS程序的BBS系统
    4.KBS 在 ylmf3(ubuntu) 下的安装方法
    5.nForum 2.0 Install
    6.Centos启用telnet服务

    文章目錄
    1. 1. 什么是KBS
    2. 2. 安装环境
      1. 2.1. 1.1 安装XAMPP
      2. 2.2. 1.2 安装依赖
        1. 2.2.1. 1.2.1 yum安装autoconf,automake,libtool
        2. 2.2.2. 1.2.2 安装其他依赖
      3. 2.3. 1.3 创建bbs用户
      4. 2.4. 1.4 修改Apache配置文件 /opt/lampp/etc/httpd.conf
      5. 2.5. 1.5 以SVN方式下载 kbsbbs 的源代码
      6. 2.6. 1.6 修改KBS的uid和gid
      7. 2.7. 1.7 运行autogen.sh命令
      8. 2.8. 1.8开始编译安装kbs
      9. 2.9. 1.9 为sshbbsd生成秘钥
      10. 2.10. 1.10 修改bbs文件夹的属性
      11. 2.11. 1.11 启动bbs
    3. 3. 2.1注意事项
      1. 3.0.1. 2.1.1
      2. 3.0.2. 2.1.2
      3. 3.0.3. 2.1.3
      4. 3.0.4. 2.1.4
      5. 3.0.5. 2.1.5
  • 4. 3.1结束语