$Id$ kbsbbs 在 Fedora 8 上的安装指南 本文介绍如何在 Fedora 8 系统上安装 kbsbbs 系统。与以往安装方法不同的是, 本文的方法尽可能使用 Fedora 自带的软件,例如 apache 和 php 等。此文档也适用 于 Fedora Core 4/5/6/7 或 RedHat Enterprise Linux/CentOS 5,但可能细节上略有 出入。 1. 需要的软件 httpd 必须 php 必须 php-devel 必须 php-gd 必须 php-xml或者php-domxml 必须 zlib-devel 必须 openssl-devel 必须 gmp-devel 必须 gd 必须 libesmtp-devel 可选 mysql 可选 mysql-devel 可选 mysql-server 可选 php-mysql 可选 (以上 4 个只有当加入 mysql 支持的情况下才需要) autoconf 可选 automake 可选 libtool 可选 (以上 3 个只有使用 SVN 时才需要) 以上软件都可以直接用 yum 安装,或者使用 Fedora 光盘里的 rpm 安装。 2. 编译安装 kbsbbs 下载 kbsbbs 的源代码有两种方法,一种是通过 svn 方式获取,另一种是下载每 日更新的 kbsbbs-snapshot 代码包。用 svn 方式下载源代码请参考 doc/README.svn 文件。 注意在 site/ 子目录里面有名字为 fb2k-v2.c 和 fb2k-v2.h 的文件,这两个文件 是站点定制文件,本文以这两个文件为例子进行讲解。注意验证 fb2k-v2.h 文件中 BBSUID 和 BBSGID 与本地系统的 bbs 用户的 uid gid 是否一致,如果不一致请调整到 一致。可以使用命令 id bbs 来获得 bbs 用户的 uid gid。 然后进入 kbsbbs 的源代码目录,执行下列命令完成编译。 contrib/build-redhat.sh 编译成功后,用下列命令进行安装。 make install make install-home 如果你使用的是 snapshot: 将 kbsbbs 源代码目录 bbs2www/html 下的文件复制到 /var/www/html/。 如果你使用的是 svn: 在 /var/www/ 目录下 checkout www2 模块,并将老的 /var/www/html 目录 改名,把 www2 目录改名为 html。 请注意今后修改代码编译后只需要执行 make install。make install-home 只需要 首次安装的时候执行,以后再执行将会覆盖掉 BBS 的数据! 3. 运行 kbsbbs 下面这些步骤有些需要 root 权限,为方便起见,直接切换到 root 用户。 cd /usr/local chown -R bbs:bbs bbs cd bbs/bin ./miscd daemon ./bbslogd ./bbsd -p 23 (可以使用其他端口,如果用 23 的话, 需要把系统的 telnet 服务关闭) ./newpop3d (提供 POP3 方式取信) 如果还想提供 ssh 方式的连接,请执行: cp /etc/ssh/ssh_host_key /usr/local/bbs/etc/ chown bbs:bbs /usr/local/bbs/etc/ssh_host_key touch /usr/local/bbs/etc/sshd_config 然后启动到 24 端口: /usr/local/bbs/bin/sshbbsd -p 24 如果你希望使用 22 端口,则需要把系统 sshd 服务的端口换一下,修改 /etc/ssh/sshd_config 并重新启动 sshd 服务,修改 sshd 端口号属于高危 操作,请尽量在本地机器上执行。 4. 初始化 kbsbbs 首先登录到 bbs 上,用 telnet 127.0.0.1 命令,如果 bbsd 不是运行在 23 端口,则还需在命令行上提供端口参数。 连上 bbs 之后,首先输入 new 新建 SYSOP 帐号,一定要用全部大写的 SYSOP。 然后再新建一个 guest 帐号(kbsbbs 的 www 模块要求系统中必须有 guest 用户)。 其他的管理功能比如开版操作可以用 SYSOP 帐号进行,可以参考 kbsbbs 中 doc/ 目录的文件及 水木社区 (http://newsmth.net/) BBSMan_Dev 版的文章。 5. 配置 apache 和 php 下面这些步骤同样用 root 用户进行。 编辑 /etc/php.ini 文件,修改 short_open_tag = Off magic_quotes_gpc = off 找到 session.save_path 这一行,将对应的目录设置成 bbs 用户可写。 在 /etc/php.d/ 目录里面建立 kbs.ini 文件,内容只有一行: extension=libphpbbslib.so cd /etc/httpd/conf 编辑 httpd.conf 文件,修改参数 User bbs Group bbs AddDefaultCharset gb2312 最后使用 service httpd start 来启动 httpd 服务,如果原来已经 启动了 httpd 服务,则可通过 service httpd restart 来重启 httpd 服务。 6. 出现故障 下面的方法可用来检查 kbsbbs 的 phpbbslib extension 是否起作用。 编写 info.php 文件,置于 /var/www/html 目录中,内容如下: 然后在浏览器中输入地址 http://server_address/info.php,查看输出页面, 如果页面中没有 kbs_bbs support enabled 这一行,说明 kbsbbs 的 phpbbslib extension 没有起作用。 另外 apache 的 error log 也可能有有用的信息:/var/log/httpd/error_log。 Fedore 默认将 httpd 服务加入 SELinux 保护,如果开启 SELinux 会导致 libphpbbslib.so 加载失败(因为有依赖库在非标准路径)。 最后要把 info.php 文件删除。 其他问题请到水木社区 (newsmth.net) BBSMan_Dev 版讨论。