root/trunk/kbs_bbs/doc/INSTALL.debian @ 10591

Revision 10591, 9.0 KB (checked in by atppp, 14 months ago)

doc this??

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[10162]1$Id$
[10161]2
3                  kbsbbs 在 Debian GNU/Linux 4.0 上的安装指南
4
5    本文介绍了 Debian GNU/Linux 4.0 上 kbsbbs 的编译和安装。
6    与以往安装方法不同的是,本文的方法尽可能使用 Debian 自带的软件,例如
7apache2 和 libapache2-mod-php5 等。
8
90. ChangeLog
102008.01.13
11  fancyrabbit 修改并加入 svn。
12
132006.04.21
14  JulyClyde 修正了一些关于 MySQL 的错误。其实早就逐渐修正了,只不过今天趁着修
15正加上了 ChangeLog 而已。
16
172005.11.29
18  JulyClyde 写了这个文档的初始版本。参考资料为郑州大学的包子写的 Debian 版安装
19指南以及昨天晚上的实验经验。
20
212005.11.28
22  JulyClyde 在解放军信息工程大学做实验。
23
241. 需要的软件:
25zlib1g                  系统自带
26exim4                   系统自带
27
28zlib1g-dev              必需
29autoconf                如果从 svn 下载源代码编译安装则必需
30automake                如果从 svn 下载源代码编译安装则必需
31libtool                 如果从 svn 下载源代码编译安装则必需
32
33libgmp3c2               选择 ssh 方式支持才需要
34libgmp3-dev             选择 ssh 方式支持才需要
35openssl                 选择 pop3d 支持 pop3s 才需要
36
37apache                  选择 web 界面支持才需要
38  或 apache2
39libapache-mod-php4      选择 web 界面支持才需要
40  或 libapache2-mod-php4
41  或 libapache-mod-php5
42  或 libapache2-mod-php5
43
44php4-dev                选择 web 界面支持才需要(提供 php 的头文件)
45  或 php5-dev
46php4-gd                 选择 web 界面支持才需要(自动安装其它图形库)
47  或 php5-gd
48php4-domxml             选择 web 界面支持才需要
49
50bison 或 byacc          有时候编译转信部分需要
51
52libmysqlclient15-dev    选择 Blog 等功能支持才需要
53php4-mysql
54  或 php5-mysql
55
56以上软件都可以直接用 apt-get 或 aptitude 安装。
57
582. 安装
59    本节介绍 kbsbbs 的 telnet/ssh/web 方式在 Debian Linux 4.0 上的安装。注意本
60文后面给出的命令除了特别说明的之外都不需要 root 权限。
61
622.1 一些约定
63    $(BBSHOME)         表示 bbs 的安装目录,在本文中指定为 /home/bbs
64    $(SRCDIR)          表示存放 kbsbbs、apache 和 php 源代码的目录,可自己设
65                       定一个,例如放在自己 home 目录的某个子目录下
66
67    注意,这里提到的 $(BBSHOME) 等单词并不是 Makefile 或其他脚本语言的变量,
68仅仅是一种命名约定。在后面出现 $(BBSHOME) 等单词的地方,应把它们替换成对应的
69实际名字,而不是直接输入 $(BBSHOME)。
70
71    例 1:
72    如果本文中有一个命令是这样的:
73          ./configure --prefix=$(BBSHOME)
74
75    那么你不能直接在 shell 里面原封不动的输入上述命令,而应该根据你的实际情
76况,比如你想把 kbsbbs 安装在 /home/bbs 目录,那么 $(BBSHOME) 就被约定为
77/home/bbs,于是在实际执行上述命令时,应把 $(BBSHOME) 替换为 /home/bbs,上述
78命令实际是指:
79          ./configure --prefix=/home/bbs
80
81    例 2:
82    如果本文中有一句话是这样的:把文件复制到 $(BBSHOME)/bin 目录。假设
83$(BBSHOME) 还是被约定为 /home/bbs,那么“把文件复制到 $(BBSHOME)/bin 目录”
84的意思是“把文件复制到 /home/bbs/bin 目录”。
85
86    在开始安装以前,需要在系统内创建 bbs 用户和组,上述相关目录如果没有的话应
87该手工创建,并设置 bbs 用户为目录属主并可以读写。
88
892.2 安装 Debian
90    建议使用直连的网络安装,或者使用 debian-40r2-i386-binary-1.iso 安装盘安装。
91这样,在基本系统安装完之后,还会自动装上编译器,make 等工具。
92    如使用 debian-40r2-i386-businesscard.iso 或者 debian-40r2-i386-netinst.iso
93请确保安装过程中重启动之后能够连接网络。
94
95    exim4 是 Debian 中默认的 MTA,可以伪装成 sendmail 程序运行,并且提供和
96sendmail 兼容的功能,因此不需要再安装 sendmail 。
97
98    libgmp3 库可以使用
99        aptitude install libgmp3c2 libgmp3-dev
100    命令安装。
101    zlib1g-dev 库可以使用
102        aptitude install zlib1g-dev
103    命令安装。
104
105    注意 php4-dev/php5-dev 自动安装的 automake 包是 1.4 版,在安装转信部分时会
106产生错误的 Makefile。安装 automake1.7 或以上版本之后要用 update-alternative 命
107令将默认的 automake 设置为高版本的。
108
1092.3 下载 kbsbbs 代码包
110    下载 kbsbbs 的源代码有两种方法,一种是通过 SVN 方式获取,另一种是下载每日
111更新的 kbsbbs-snapshot 代码包。用 SVN 方式获取请参考 doc/README.svn 文件。
112    把 kbsbbs 的代码包放在 $(SRCDIR) 目录,然后解开。
113
114    注意在 site/ 子目录里面有名字为 fb2k-v2.c 和 fb2k-v2.h 的文件,这两个文件
115是站点定制文件,本文以这两个文件为例子进行讲解。注意验证 fb2k-v2.h 文件中
116BBSUID 和 BBSGID 与本地系统的 bbs 用户的 uid gid 是否一致,如果不一致请调整到
117一致。一般来说,Debian 上创建的用户的 UID 都在 1000 号以上,和默认的 500 不同,
118请注意修改。
119
120    用如下命令可以验证这些 ID 是否一致:
121        grep "^#define.*BBSUID" fb2k-v2.h
122        grep "^#define.*BBSGID" fb2k-v2.h
123        grep "^bbs:" /etc/passwd
124
125    注:如果看不懂命令执行的结果,请先阅读 C 语言及 Unix 方面的书籍,再尝试安
126装 kbsbbs。
127
1282.4 安装 apache 和 php
129    以 apache2 和 php5 为例说明,参照以下命令进行安装:
130        aptitude install apache2 libapache2-mod-php5
131        aptitude install php5-dev php5-gd
132
133    如果使用 php4,以上步骤中需要修改的地方是:
134    php4 的安装命令改成:
135        aptitude install php4-dev php4-gd php4-domxml
136    依此类推。
137
1382.5 安装 kbsbbs
139    同样切换到 $(SRCDIR) 目录,进入 kbsbbs 的源代码目录。
140
141    然后执行下面的一系列命令:
142          ./configure --prefix=$(BBSHOME) --enable-site=fb2k-v2 \
143              --with-php --with-mysql --enable-ssh --enable-customizing
144          make
145          make install(用 root 执行)
146         
147          make install-home
148          chown -R bbs:bbs $(BBSHOME) (用 root 执行)
149   
150    注意,这里最后两个命令的作用是把源代码 bbshome 目录下的重要数据文件复制到
151$(BBSHOME) 下去,创建必要的子目录并确保设置正确的权限。以后更改源代码的话,只
152需要在源代码目录下执行 make; make install 即可,千万不要执行 make install-home
153,因为执行的话就会丢失 bbs 数据!
154
155    注:一些常用 configure 参数说明。
156          --enable-site=SITE      告诉 kbsbbs 采用名为 SITE.h 和 SITE.c 的站
157                                  点定制文件,这两个文件必须放在 site/ 目录
158          --with-mysql[=DIR]      让 kbsbbs 支持 MySQL,DIR 为 MySQL 库文件
159                                  所在目录,如果不指明则自动检测
160          --without-mysql         不让 kbsbbs 支持 MySQL
161          --with-php[=DIR]        让 kbsbbs 找到 php 安装目录,如果不指明 DIR
162                                  则自动检测
163          --enable-customizing    设置运行期更改系统设置的功能。这样站名可以统
164                                  一在 sysconf.ini 中设置;否则需要修改 site.h
165
1663. 运行之前的配置
167    本节主要说明 ssh 方式和 web 方式的配置。
168    下面这些步骤有些需要 root 权限,为方便起见,直接切换到 root 用户。
169
1703.1 ssh 方式
171    请参考 doc/INSTALL.ssh 文件。
172    懒人可以用如下命令产生最简单的可用的配置文件(不推荐):
173        touch $(BBSHOME)/etc/sshd_config
174        ssh-keygen -t rsa1 -f $(BBSHOME)/etc/ssh_host_key
175    以上命令需要安装 openssh-client 包。
176
1773.2 web 方式
178    apache2 的配置文件为 /etc/apache2/apache2.conf,打开该文件,
179    把 User 和 Group 参数都修改为 bbs。
180    请把 KeepAlive 参数设为 Off。
181    建议加入 AddDefaultCharset gb2312
182
183    使用 apache 时,在其配置文件 /etc/apache/httpd.conf 中,确定
184        AddType application/x-httpd-php .php
185    这一行没有被注释掉(apache2 不需要检查此设置)
186
[10164]187    使用 apache2 时,在 /etc/apache2/sites-enabled/000-default 文件中,注释掉
188        RedirectMatch ^/$ /apache2-default/
189    一行以去除默认的重定向(apache 不需要做此项设置)
190
[10161]191    如果使用下载 snapshot 包的方式获得源码,则
192    将 kbsbbs 源代码目录 bbs2www/html 下的文件复制到 /var/www/
193    如果使用 SVN 方式获取源码,则
194    将 www2 模块 checkout 为 /var/www/ 目录
195
196    php5 的配置文件在 /etc/php5/apache2/php.ini,打开该文件,
197    将 short_open_tag 的值修改为 Off,magic_quotes_gpc 也应该设置成 Off。
[10174]198    将 session.save_path 目录(如 /var/lib/php5/)设置成 bbs 用户可写。
[10164]199    在 /etc/php5/conf.d/ 目录里面建立 kbs.ini 文件,内容只有一行:
[10161]200        extension=libphpbbslib.so
201
2024. 运行
203    注意只有需要开 < 1024 端口号服务的程序需要用 root 来启动,具体来说,bbsd
204(23 端口),sshbbsd (22 端口) 需要用 root 身份来启动;另外,apache 服务需要用
205root 身份启动。
206
2074.1 运行 kbsbbs
208          cd $(BBSHOME)/bin
209          ./miscd daemon
210          ./bbslogd
211          ./bbsd -p 23
212          ./sshbbsd -p 22
213
214    然后 telnet localhost,注册 SYSOP 和 guest 两个帐号。
215
2164.2 运行 apache2
217          /etc/init.d/apache2 restart
218   
2195. 其它
220    pop3s 的支持在 configure 的时候加上 --with-openssl[=path],生成的 newpop3d
221将自动包含 pop3 和 pop3s 的支持。pop3s 支持需要一个证书,可以用 openssl 生成并
222放在$(BBSHOME)/etc/bbs.crt 和 $(BBSHOME)/etc/bbs.key,比如:
223    openssl genrsa -out $(BBSHOME)/etc/bbs.key
224    openssl req -x509 -days 3650 -new -key bbs.key -out $(BBSHOME)/etc/bbs.crt
225
226    转信支持请参考 doc/INSTALL.innbbsd 文档。
227
228    bbs 用户还需要一个 crontab 以便完成一些日常事务,请参考 doc/README.SYSOP。
229
[10591]230    某些系统默认共享内存太小(比如 Ubuntu),会导致启动 miscd 时 Bus Error,用
231下面的办法调大(用 root 执行):
232    $ echo 268435456 > /proc/sys/kernel/shmmax
233    $ echo "kernel.shmmax = 268435456" >> /etc/sysctl.conf
234
[10161]2356. 出现故障
236    下面的方法可用来检查 kbsbbs 的 phpbbslib extension 是否起作用。
237
238    编写 info.php 文件,置于 /var/www 目录中,内容如下:
239
240<?php
241        phpinfo();
242?>
243
244    然后在浏览器中输入地址 http://server_address/info.php,查看输出页面,如果
245页面中没有 kbs_bbs support enabled 这一行,说明 kbsbbs 的 phpbbslib extension
246没有起作用。另外在这里也可以看到 gd 库和 domxml 库安装的情况。
247    另外 apache 的 error log 也可能有有用的信息:/var/log/apache2/error.log。
248
249    其它问题请到水木社区 (newsmth.net) BBSMan_Dev 版讨论。
250
Note: See TracBrowser for help on using the browser.