root/trunk/kbs_bbs/doc/INSTALL

Revision 10633, 9.3 KB (checked in by fancy, 6 months ago)

skybluee: update INSTALL docs

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1$Id$
2                              水木代码安装指南
3
4    本文由 KBS 开发组负责维护,介绍了 kbs bbs 在类 Unix 操作系统(包括 Linux、
5FreeBSD、Solaris 8/9 for X86/SPARC 等)上的编译和安装,主要讨论用完全定制的方
6式进行安装。
7
80. ChangeLog
92005.8.19
10  flyriver 使命名约定前后一致,另外加入一些婆婆妈妈的说明
11
122004.7.20
13  flyriver v1.2.1 更新 libesmtp 的说明,加入常用 configure 参数说明
14
152004.1.1
16  flyriver v1.2 重写这个安装文档
17
182002.7.31
19  COMMAN 加入对 ssh 部分的说明, 修正 pop3s 的说明 
20
212002.7.27
22  KCN v1.1 加入pop3s,ssh部分的说明
23
242002.6.29
25  flyriver v1.0
26
271. 需要的软件
28zlib                   必须
29libesmtp > 0.8         可选
30autoconf-2.57          可选      如果从 svn 下载源代码编译安装则必需
31automake-1.6.X         可选      如果从 svn 下载源代码编译安装则必需
32libtool-1.4.X          可选      如果从 svn 下载源代码编译安装则必需
33apache_1.3.X           可选      选择 web 界面支持才需要
34  or apache2
35php >= 4.3.0           可选      选择 web 界面支持才需要
36libxml2                可选      选择 web 界面支持才需要
37libiconv               可选      选择 web 界面支持才需要
38libjpeg                可选      选择 web 界面支持才需要
39libpng                 可选      选择 web 界面支持才需要
40freetype2              可选      选择 web 界面支持才需要
41gd                     可选      选择 web 界面支持才需要
42openssl                可选      选择 pop3d 支持 pop3s 才需要
43gmp-4.X                可选      选择 ssh 方式支持才需要
44mysql                  可选      选择个人文集等功能支持才需要
45
462. 安装
47    本节介绍 kbsbbs 的 telnet/ssh/web 方式在类 Unix 操作系统上的安装。注意
48本文后面给出的命令除了特别说明的之外都不需要 root 权限。
49
502.1 一些约定
51    $(BBSHOME)         表示 bbs 的安装目录,在本文中指定为 /home/bbs
52    $(WWWHOME)         表示 apache 的安装目录,在本文中指定为 /home/www
53    $(PHPHOME)         表示 php 的安装目录,在本文中指定为 /home/www/php
54    $(SRCDIR)          表示存放 kbsbbs、apache 和 php 源代码的目录,可自己设
55                       定一个,例如放在自己 home 目录的某个子目录下
56
57    注意,这里提到的 $(BBSHOME) 等单词并不是 Makefile 或其他脚本语言的变量,
58仅仅是一种命名约定。在后面出现 $(BBSHOME) 等单词的地方,应把它们替换成对应的
59实际名字,而不是直接输入 $(BBSHOME)。
60
61    例 1:
62    如果本文中有一个命令是这样的:
63          ./configure --prefix=$(BBSHOME)
64
65    那么你不能直接在 shell 里面原封不动的输入上述命令,而应该根据你的实际情
66况,比如你想把 kbsbbs 安装在 /home/bbs 目录,那么 $(BBSHOME) 就被约定为
67/home/bbs,于是在实际执行上述命令时,应把 $(BBSHOME) 替换为 /home/bbs,上述
68命令实际是指:
69          ./configure --prefix=/home/bbs
70
71    例 2:
72    如果本文中有一句话是这样的:把文件复制到 $(BBSHOME)/bin 目录。假设
73$(BBSHOME) 还是被约定为 /home/bbs,那么“把文件复制到 $(BBSHOME)/bin 目录”
74的意思是“把文件复制到 /home/bbs/bin 目录”。
75
76    在开始安装以前,需要在系统内创建 bbs 用户和组,上述相关目录如果没有的话应
77该手工创建,并设置 bbs 用户为目录属主并可以读写。
78
79   
802.2 安装 libesmtp 和 gmp
81    libesmtp 建议从源代码编译安装,configure 的时候建议加上 --disable-pthreads
82参数,但不加也可以,然后运行 make 和 make install 命令。
83    注:从 kbsbbs-1.2.1 版本开始,libesmtp 不再是必须安装的了,但如果不使用
84libesmtp 的话,则系统中必须安装有 sendmail 程序。
85
86    gmp 可以直接使用操作系统自带的软件包。
87
882.3 下载 kbsbbs、apache 和 php 的代码包
89    下载 kbsbbs 的源代码有两种方法,一种是通过 svn 方式获取,另一种是下载每
90日更新的 kbsbbs-snapshot 代码包。用 svn 方式下载源代码请参考 doc/README.svn
91文件。把 kbsbbs、apache 和 php 的代码包放在 $(SRCDIR) 目录,然后分别解开。
92
93    注意在 site/ 子目录里面有名字为 fb2k-v2.c 和 fb2k-v2.h 的文件,这两个文件
94是站点定制文件,本文以这两个文件为例子进行讲解。注意验证 fb2k-v2.h 文件中
95BBSUID 和 BBSGID 与本地系统的 bbs 用户的 uid gid 是否一致,如果不一致请调整到
96一致。
97
98    用如下命令可以验证这些 ID 是否一致:
99          grep "^#define.*BBSUID" fb2k-v2.h
100          grep "^#define.*BBSGID" fb2k-v2.h
101          grep "^bbs:" /etc/passwd
102
103    注:如果看不懂命令执行的结果,请先阅读 C 语言及 Unix 方面的书籍,再尝试安
104装 kbsbbs。
105
1062.4 安装 apache 和 php
107    首先切换目录到 $(SRCDIR)。为了节省篇幅,下面直接以命令表示。
108          cd apache_1.3.X
109          ./configure --prefix=$(WWWHOME) --enable-module=so
110          make
111          make install
112         
113          cd ../php-4.3.X
114          ./configure --prefix=$(PHPHOME) \
115             --with-apxs=$(WWWHOME)/bin/apxs --disable-debug \
116             --enable-pic --disable-rpath --enable-inline-optimization \
117             --with-dom --with-gd --with-freetype-dir \
118             --with-png-dir --with-iconv --with-jpeg-dir --with-zlib \
119             --enable-track-vars
120          make
121          make install
122
123    [补充] 如果使用 apache2,以上步骤中需要修改的地方是:
124        apache 的 configure 命令改成:
125                ./configure --prefix=$(WWWHOME) --enable-so
126        php 的 configure 命令里面的 --with-apxs=$(WWWHOME)/bin/apxs 改成:
127                --with-apxs2=$(WWWHOME)/bin/apxs
128    [补充] php5 不默认编译 mysql 支持,所以如果需要 mysql 支持的话,应该
129           在 php 的 configure 命令中加入 --with-mysql
130    [补充] 在64位下编译的时候有时候会碰到找不到64位库的问题。
131           在 php 的 configure 命令中加入 --with-libdir=lib64 强制它在链接lib64
132           目录下的库
133
1342.5 安装 kbsbbs
135    同样切换到 $(SRCDIR) 目录,进入 kbsbbs 的源代码目录。
136
137    然后执行下面的一系列命令:
138          ./configure --prefix=$(BBSHOME) --enable-site=fb2k-v2 \
139              --with-php=$(PHPHOME) --with-mysql --enable-ssh --enable-ssl
140          make
141          make install
142         
143          make install-home
144          chown -R bbs:bbs $(BBSHOME) (最好用 root 执行)
145   
146    注意,这里最后两个命令的作用是把源代码 bbshome 目录下的重要数据文件复制到
147$(BBSHOME) 下去,创建必要的子目录并确保设置正确的权限。以后更改源代码的话,只
148需要在源代码目录下执行 make; make install; 即可,千万不要执行
149make install-home,因为执行的话就会丢失 bbs 数据!
150
151    注:一些常用 configure 参数说明。
152          --enable-site=SITE      告诉 kbsbbs 采用名为 SITE.h 和 SITE.c 的站
153                                  点定制文件,这两个文件必须放在 site/ 目录
154          --with-mysql[=DIR]      让 kbsbbs 支持 mysql,DIR 为 mysql 库文件
155                                  所在目录,如果不指明则自动检测
156          --without-mysql         不让 kbsbbs 支持 mysql
157          --with-libesmtp[=DIR]   让 kbsbbs 支持 libesmtp,DIR 为 libesmtp 库
158                                  文件所在目录,如果不指明则自动检测
159          --without-libesmtp      不让 kbsbbs 支持 libesmtp
160          --with-php[=DIR]        让 kbsbbs 找到 php 的安装目录,如果不
161                                  指明 DIR 则自动检测
162
1632.6[不推荐] 将 phpbbslib 放入 php 并再次编译安装 php
164    同样切换到 $(SRCDIR) 目录,进入 php 的源代码目录。
165          mkdir ext/kbs_bbs
166
167    然后将 kbsbbs 源代码目录 php/ 下的 config.m4、php_kbs_bbs.h
168和所有的 .c 文件复制到 ext/kbs_bbs 目录,然后执行:
169          ./buildconf --force
170
171    再次编译安装 php 重复 2.4 节中的步骤即可,但 php 的 configure 命令应该
172附加上 --enable-kbs_bbs 的参数。
173   
174    注:我们不推荐执行步骤 2.6,但在某些系统上 (比如 cygwin),要把
175phpbbslib 编译成可以动态执行的模块比较困难,则 2.6 就是必须执行的步骤了。
176
1772.7[可选] 初始化 BBS
178    以 $(BBSUID) 或者 root 身份执行 $(BBSHOME)/bin/bootstrap 以初始化 BBS
179    此程序会自动注册 guest 和 SYSOP,并建立 sysop 等系统基本版面
180
1813. 运行之前的配置
182    本节主要说明 ssh 方式和 web 方式的配置。
183
1843.1 ssh 方式
185    请参考 doc/INSTALL.ssh 文件。
186    懒人可以用如下命令产生最简单的可用的配置文件(不推荐):
187        touch $(BBSHOME)/etc/sshd_config
188        ssh-keygen -t rsa1 -f $(BBSHOME)/etc/ssh_host_key
189
1903.2 web 方式
191    apache 的配置文件为 $(WWWHOME)/conf/httpd.conf,编辑该文件,加入
192        AddType application/x-httpd-php .php
193
194    修改 Port 参数为 80,把 User 和 Group 参数都修改为 bbs。
195    请把 KeepAlive 参数设为 Off.
196    如果使用 apache2,建议加入 AddDefaultCharset gb2312.
197
198    如果你使用的是 snapshot:
199        将 kbsbbs 源代码目录 bbs2www/html 下的文件复制到 $(WWWHOME)/htdocs。
200    如果你使用的是 svn:
201        在 $(WWWHOME) 目录下 checkout www2 模块,并将 www2 目录改名为 htdocs。
202
203    php 的配置文件可以从 php 源代码目录得到,将 php.ini-dist 复制为
204$(PHPHOME)/lib/php.ini,然后编辑 php.ini 文件,将 short_open_tag
205的值修改为 off,magic_quotes_gpc 也应该设置成 off。
206
207    如果没有执行上面的 2.6 步骤,那么再执行下面的操作:
208        修改 php.ini 文件,将
209            extension_dir = ./
210        注释掉,再加入一行
211            extension=libphpbbslib.so
212        PHP 将会使用默认的扩展库路径,可以用 php-config --extention-dir 查看。
213
2144. 运行
215
216    注意只有需要开 < 1024 端口号服务的程序需要用 root 来启动,具体来说,
217bbsd (23端口),sshbbsd (22端口),apachectl (80端口) 需要用 root 身份来启动。
218
2194.1 运行 kbsbbs
220          cd $(BBSHOME)/bin
221          ./miscd daemon
222          ./bbslogd
223          ./bbsd -p 23
224          ./sshbbsd -p 22
225
226    然后 telnet localhost,注册 SYSOP 和 guest 两个帐号。
227    如果执行了步骤 2.7,则可跳过 SYSOP 和 guest 账号的注册。
228
2294.2 运行 apache
230          $(WWWHOME)/bin/apachectl start
231   
2325. 其他
233    pop3s的支持在 configure 的时候加上 --with-openssl[=path],生成的 newpop3d
234将自动包含 pop3 和 pop3s 的支持。pop3s 支持需要一个证书,可以用 openssl 生成
235并放在 $(BBSHOME)/etc/bbs.crt 和 $(BBSHOME)/etc/bbs.key,比如:
236    openssl genrsa -out $(BBSHOME)/etc/bbs.key
237    openssl req -x509 -days 3650 -new -key bbs.key -out $(BBSHOME)/etc/bbs.crt
238
239    转信支持请参考 doc/INSTALL.innbbsd 文档。
240
241    bbs 用户还需要一个 crontab 以便完成一些日常事务,请参考 doc/README.SYSOP。
242
243    其它问题请到 水木社区(newsmth.net) 的 BBSMan_Dev 版面讨论。
Note: See TracBrowser for help on using the browser.