| 1 | $Id$ |
|---|
| 2 | |
|---|
| 3 | kbsbbs 在 Fedora 8 上的安装指南 |
|---|
| 4 | |
|---|
| 5 | 本文介绍如何在 Fedora 8 系统上安装 kbsbbs 系统。与以往安装方法不同的是, |
|---|
| 6 | 本文的方法尽可能使用 Fedora 自带的软件,例如 apache 和 php 等。此文档也适用 |
|---|
| 7 | 于 Fedora Core 4/5/6/7 或 RedHat Enterprise Linux/CentOS 5,但可能细节上略有 |
|---|
| 8 | 出入。 |
|---|
| 9 | |
|---|
| 10 | 1. 需要的软件 |
|---|
| 11 | httpd 必须 |
|---|
| 12 | php 必须 |
|---|
| 13 | php-devel 必须 |
|---|
| 14 | php-gd 必须 |
|---|
| 15 | php-xml或者php-domxml 必须 |
|---|
| 16 | zlib-devel 必须 |
|---|
| 17 | openssl-devel 必须 |
|---|
| 18 | gmp-devel 必须 |
|---|
| 19 | gd 必须 |
|---|
| 20 | libesmtp-devel 可选 |
|---|
| 21 | |
|---|
| 22 | mysql 可选 |
|---|
| 23 | mysql-devel 可选 |
|---|
| 24 | mysql-server 可选 |
|---|
| 25 | php-mysql 可选 |
|---|
| 26 | (以上 4 个只有当加入 mysql 支持的情况下才需要) |
|---|
| 27 | |
|---|
| 28 | autoconf 可选 |
|---|
| 29 | automake 可选 |
|---|
| 30 | libtool 可选 |
|---|
| 31 | (以上 3 个只有使用 SVN 时才需要) |
|---|
| 32 | |
|---|
| 33 | 以上软件都可以直接用 yum 安装,或者使用 Fedora 光盘里的 rpm 安装。 |
|---|
| 34 | |
|---|
| 35 | 2. 编译安装 kbsbbs |
|---|
| 36 | 下载 kbsbbs 的源代码有两种方法,一种是通过 svn 方式获取,另一种是下载每 |
|---|
| 37 | 日更新的 kbsbbs-snapshot 代码包。用 svn 方式下载源代码请参考 doc/README.svn |
|---|
| 38 | 文件。 |
|---|
| 39 | |
|---|
| 40 | 注意在 site/ 子目录里面有名字为 fb2k-v2.c 和 fb2k-v2.h 的文件,这两个文件 |
|---|
| 41 | 是站点定制文件,本文以这两个文件为例子进行讲解。注意验证 fb2k-v2.h 文件中 |
|---|
| 42 | BBSUID 和 BBSGID 与本地系统的 bbs 用户的 uid gid 是否一致,如果不一致请调整到 |
|---|
| 43 | 一致。可以使用命令 id bbs 来获得 bbs 用户的 uid gid。 |
|---|
| 44 | |
|---|
| 45 | 然后进入 kbsbbs 的源代码目录,执行下列命令完成编译。 |
|---|
| 46 | contrib/build-redhat.sh |
|---|
| 47 | |
|---|
| 48 | 编译成功后,用下列命令进行安装。 |
|---|
| 49 | make install |
|---|
| 50 | make install-home |
|---|
| 51 | |
|---|
| 52 | 如果你使用的是 snapshot: |
|---|
| 53 | 将 kbsbbs 源代码目录 bbs2www/html 下的文件复制到 /var/www/html/。 |
|---|
| 54 | 如果你使用的是 svn: |
|---|
| 55 | 在 /var/www/ 目录下 checkout www2 模块,并将老的 /var/www/html 目录 |
|---|
| 56 | 改名,把 www2 目录改名为 html。 |
|---|
| 57 | |
|---|
| 58 | 请注意今后修改代码编译后只需要执行 make install。make install-home 只需要 |
|---|
| 59 | 首次安装的时候执行,以后再执行将会覆盖掉 BBS 的数据! |
|---|
| 60 | |
|---|
| 61 | 3. 运行 kbsbbs |
|---|
| 62 | 下面这些步骤有些需要 root 权限,为方便起见,直接切换到 root 用户。 |
|---|
| 63 | cd /usr/local |
|---|
| 64 | chown -R bbs:bbs bbs |
|---|
| 65 | cd bbs/bin |
|---|
| 66 | ./miscd daemon |
|---|
| 67 | ./bbslogd |
|---|
| 68 | ./bbsd -p 23 (可以使用其他端口,如果用 23 的话, |
|---|
| 69 | 需要把系统的 telnet 服务关闭) |
|---|
| 70 | ./newpop3d (提供 POP3 方式取信) |
|---|
| 71 | |
|---|
| 72 | 如果还想提供 ssh 方式的连接,请执行: |
|---|
| 73 | cp /etc/ssh/ssh_host_key /usr/local/bbs/etc/ |
|---|
| 74 | chown bbs:bbs /usr/local/bbs/etc/ssh_host_key |
|---|
| 75 | touch /usr/local/bbs/etc/sshd_config |
|---|
| 76 | 然后启动到 24 端口: |
|---|
| 77 | /usr/local/bbs/bin/sshbbsd -p 24 |
|---|
| 78 | 如果你希望使用 22 端口,则需要把系统 sshd 服务的端口换一下,修改 |
|---|
| 79 | /etc/ssh/sshd_config 并重新启动 sshd 服务,修改 sshd 端口号属于高危 |
|---|
| 80 | 操作,请尽量在本地机器上执行。 |
|---|
| 81 | |
|---|
| 82 | 4. 初始化 kbsbbs |
|---|
| 83 | 首先登录到 bbs 上,用 telnet 127.0.0.1 命令,如果 bbsd 不是运行在 23 |
|---|
| 84 | 端口,则还需在命令行上提供端口参数。 |
|---|
| 85 | |
|---|
| 86 | 连上 bbs 之后,首先输入 new 新建 SYSOP 帐号,一定要用全部大写的 SYSOP。 |
|---|
| 87 | 然后再新建一个 guest 帐号(kbsbbs 的 www 模块要求系统中必须有 guest 用户)。 |
|---|
| 88 | |
|---|
| 89 | 其他的管理功能比如开版操作可以用 SYSOP 帐号进行,可以参考 kbsbbs 中 |
|---|
| 90 | doc/ 目录的文件及 水木社区 (http://newsmth.net/) BBSMan_Dev 版的文章。 |
|---|
| 91 | |
|---|
| 92 | 5. 配置 apache 和 php |
|---|
| 93 | 下面这些步骤同样用 root 用户进行。 |
|---|
| 94 | |
|---|
| 95 | 编辑 /etc/php.ini 文件,修改 |
|---|
| 96 | short_open_tag = Off |
|---|
| 97 | magic_quotes_gpc = off |
|---|
| 98 | 找到 session.save_path 这一行,将对应的目录设置成 bbs 用户可写。 |
|---|
| 99 | |
|---|
| 100 | 在 /etc/php.d/ 目录里面建立 kbs.ini 文件,内容只有一行: |
|---|
| 101 | extension=libphpbbslib.so |
|---|
| 102 | |
|---|
| 103 | cd /etc/httpd/conf |
|---|
| 104 | 编辑 httpd.conf 文件,修改参数 |
|---|
| 105 | User bbs |
|---|
| 106 | Group bbs |
|---|
| 107 | AddDefaultCharset gb2312 |
|---|
| 108 | |
|---|
| 109 | 最后使用 service httpd start 来启动 httpd 服务,如果原来已经 |
|---|
| 110 | 启动了 httpd 服务,则可通过 service httpd restart 来重启 httpd 服务。 |
|---|
| 111 | |
|---|
| 112 | 6. 出现故障 |
|---|
| 113 | 下面的方法可用来检查 kbsbbs 的 phpbbslib extension 是否起作用。 |
|---|
| 114 | |
|---|
| 115 | 编写 info.php 文件,置于 /var/www/html 目录中,内容如下: |
|---|
| 116 | <?php |
|---|
| 117 | phpinfo(); |
|---|
| 118 | ?> |
|---|
| 119 | |
|---|
| 120 | 然后在浏览器中输入地址 http://server_address/info.php,查看输出页面, |
|---|
| 121 | 如果页面中没有 kbs_bbs support enabled 这一行,说明 kbsbbs 的 phpbbslib |
|---|
| 122 | extension 没有起作用。 |
|---|
| 123 | 另外 apache 的 error log 也可能有有用的信息:/var/log/httpd/error_log。 |
|---|
| 124 | |
|---|
| 125 | Fedore 默认将 httpd 服务加入 SELinux 保护,如果开启 SELinux 会导致 |
|---|
| 126 | libphpbbslib.so 加载失败(因为有依赖库在非标准路径)。 |
|---|
| 127 | |
|---|
| 128 | 最后要把 info.php 文件删除。 |
|---|
| 129 | |
|---|
| 130 | 其他问题请到水木社区 (newsmth.net) BBSMan_Dev 版讨论。 |
|---|
| 131 | |
|---|