YTHT BBS在Cygwin环境安装手册
来源:互联网 发布:炭知天下 地图 编辑:程序博客网 时间:2024/04/30 13:39
YTHT BBS在Cygwin环境安装手册
YTHT BBS 系统维护组
v0.1, 11 May 2004
private build v0.2 Oct 12 2004 by tnds
本文档主要描述如何在MS Windows平台上的Cygwin环境里面安装YTHT BBS软件
1. 概述
2. 初次安装
- 2.1 安装及配置Cygwin
- 2.2 获得BBS 代码
- 2.3 修改BBS 代码
- 2.4 目录software的安装
- 2.5 更改BBS 配置
- 2.6 Telnet部分的安装
- 2.7 Telnet部分测试运行及配置
- 2.8 Web 部分的安装
- 2.9 转信部分的安装
- 2.10 Ftp 部分的安装
- 2.11 atthttpd部分的安装
- 2.12 sshbbsd部分的安装
- 2.13 Cron的配置
- 2.14 启动BBS 服务
3. 修改代码后重新安装
- 3.1 修改代码的注意事项
- 3.2 ythtlib目录的修改
- 3.3 libythtbbs目录的修改
- 3.4 src目录的修改
- 3.5 local_utl目录的修改
- 3.6 nju09目录的修改
- 3.7 innbbsd目录的修改
- 3.8 yftpd目录的修改
- 3.9 atthttpd目录的修改
- 3.10 smth-sshbbsd目录的修改
1. 概述
1.1 一些约定
为叙述方便,本手册作如下约定:
- $ : 命令提示符
- /home/bbs : BBS安装目录,默认为 /home/bbs ,安装时请改为自己选择的目录
1.2 系统环境
- Microsoft Windows 2000 or XP
- Cygwin 1.5.7 或以上版本
- UltraEdit (建议安装 用于改写Unix格式的文本文件)
1.3 YTHT BBS代码概述
YTHT BBS代码中,Cygwin环境下安装涉及到的主要有如下几个部分:
software目录代码概述
主要包括ghthash 、fastcgi 两个库无依赖关系
ythtlib目录代码概述
用于生成YTHT BBS的一个静态库 /home/bbs/bin/libytht.a 无依赖关系
libythtbbs目录代码概述
用于生成YTHT BBS的一个静态库 /home/bbs/bin/libythtbbs.a 无依赖关系
src目录代码概述
BBS 的Telnet登陆部分依赖于 ythtlib 和 libythtbbs
local_utl目录代码概述
BBS 的本地实用工具程序依赖于 ythtlib 和 libythtbbs
nju09目录代码概述
BBS 的Web 登陆部分依赖于 ythtlib 和 libythtbbs
innbbsd目录代码概述
BBS 的转信部分依赖于 ythtlib 和 libythtbbs
yftpd目录代码概述
BBS 的Ftp 服务器部分依赖于 ythtlib 和 libythtbbs
atthttpd目录代码概述
BBS 的Web 附件服务器部分依赖于 ythtlib 和 libythtbbs
smth_sshbbsd目录代码概述
BBS 的ssh 登陆部分依赖于 ythtlib ,libythtbbs 和 src 目录
1.4 关于提问
当您在安装过程中出现无法解决的问题时,请确定您已经详细阅读本手册并按其中叙述的方法安装的,如果问题仍无法解决,您可以在cnbbs.fbnt.dev或 cn.bbs.admin.installbbs 新闻组上提问。提问时请提供尽量详细的操作步骤和错误提示信息,以便发现错误原因,并请附上cygcheck的输出信息,例如:
$ cygcheck -svr > /tmp/check
将Cygwin系统信息输出至/tmp/check文件。(会覆盖该文件)
2. 初次安装
2.1 安装及配置Cygwin
请安装cygwin 1.5.7 或以上版本,使用低版本cygwin可能会带来麻烦。
首先在 http://www.cygwin.com/ 位置下载安装程序setup.exe ,此安装程序将引导您完成后面的Cygwin安装过程。除了Cygwin默认安装的包以外,请至少安装以下列出的包:
- apache
- autoconf
- automake
- bash
- bison
- ctags
- cvs
- cygipc
- gcc
- gcc-g++
- gd
- gdb
- indent
- libgd-devel
- libgd2
- libiconv
- libtool
- make
- openssh
- patch
- vim
- wget
- zlib
以您将用来启动bbs服务的用户登入Windows。以下均假设Cygwin已经安装完成,并已启动Cygwin控制台。
$ ln -s /usr/autotool/devel/share/automake-1.7 /usr/share/automake$ ln -s /usr/include/sys/wait.h /usr/include/wait.h
2.2 获得BBS 代码
/*modified by tnds
目前CVS停止服务,最新也是最后的代码可从如下地址下载
http://bbs.zzu.edu.cn/ytht1.rar
下载后解压至/home/bbs/bbssrc目录
modified end*/
2.3 修改BBS 代码
以下请对照代码,在相应位置进行修改。因为YTHT BBS的代码随时可能发生变化,修改前请对修改内容的含义进行了解。
版面回收模式bug 的修改
因为Windows环境下文件名不区分大小写,造成 /home/bbs/boards/boardname目录下的文件 .DELETED .deleted .deleteD 冲突,修改目标是 .deleted 改为 .del,.deleteD 改为 .deD
Index: bbs/innbbsd/innd/bbspost.c===================================================================RCS file: /home/cvs/bbs/innbbsd/innd/bbspost.c,vretrieving revision 1.30diff -u -r1.30 bbspost.c--- bbs/innbbsd/innd/bbspost.c 19 Mar 2004 02:22:55 -0000 1.30+++ bbs/innbbsd/innd/bbspost.c 10 Apr 2004 15:57:47 -0000@@ -431,7 +431,7 @@sprintf(lockfile, "%s/.dellock", homepath, brdname);sprintf(index, "%s/boards/%s/.DIR", homepath, brdname);sprintf(tmpfile, "%s/.tmpfile", homepath, brdname);- sprintf(delfile, "%s/.deleted", homepath, brdname);+ sprintf(delfile, "%s/.del", homepath, brdname);if ((fd = open(lockfile, O_RDWR | O_CREAT | O_APPEND, 0644)) == -1)return;Index: bbs/libythtbbs/record.c===================================================================RCS file: /home/cvs/bbs/libythtbbs/record.c,vretrieving revision 1.11diff -u -r1.11 record.c--- bbs/libythtbbs/record.c 22 Feb 2004 12:54:58 -0000 1.11+++ bbs/libythtbbs/record.c 10 Apr 2004 15:57:49 -0000@@ -40,7 +40,7 @@char *ptr, *delfname, *tmpfname;strcpy(tmpfile, filename);- delfname = ".deleted";+ delfname = ".del";tmpfname = ".tmpfile";if ((ptr = strrchr(tmpfile, '/')) != NULL) {strcpy(ptr + 1, delfname);Index: bbs/local_utl/auto_rm_fakedir.c===================================================================RCS file: /home/cvs/bbs/local_utl/auto_rm_fakedir.c,vretrieving revision 1.3diff -u -r1.3 auto_rm_fakedir.c--- bbs/local_utl/auto_rm_fakedir.c 29 Jun 2003 04:05:18 -0000 1.3+++ bbs/local_utl/auto_rm_fakedir.c 10 Apr 2004 15:57:49 -0000@@ -13,7 +13,7 @@".DIR",".JUNK",".DELETED",- ".DIGEST", ".deleted", ".deleteD", ".deleteJ", ".", "..", NULL};+ ".DIGEST", ".del", ".deD", ".deJ", ".", "..", NULL};intisfakedir(char *file)Index: bbs/src/bbs.c===================================================================RCS file: /home/cvs/bbs/src/bbs.c,vretrieving revision 1.535diff -u -r1.535 bbs.c--- bbs/src/bbs.c 25 Mar 2004 09:07:02 -0000 1.535+++ bbs/src/bbs.c 10 Apr 2004 15:58:22 -0000@@ -2485,7 +2485,7 @@sprintf(fullpath, "boards/%s/.tmpfile",currboard);unlink(fullpath);- sprintf(fullpath, "boards/%s/.deleted",+ sprintf(fullpath, "boards/%s/.del",currboard);unlink(fullpath);sprintf(fullpath, "boards/%s/.tmpfilD",
==========================
//added by tnds
代码中行数可能有出入,请对照前后代码。
//added end
2.4 目录software的安装
//added by tnds
由于CVS停止服务,因此需要事先获得这两个软件包
fcgidev下载地址:
http://www.smth.edu.cn/bbscon.php?bid=196&id=42866&ap=833
ghthash地址:
http://www.smth.edu.cn/bbscon.php?bid=196&id=42867&ap=906
下载后请将文件分别更名为
fcgi-2.2.2.tar.gz和libghthash-0.5.3.tar.gz
并放入/home/bbs/bbssrc/software目录
//added end
$ cd /home/bbs/bbssrc/software$ make installfcgidev$ make installghthash
2.5 更改BBS 配置
$ cd /home/bbs/bbssrc/site$ cp bbsconfig.sample bbsconfig.mybbs$ cp seclist.txt.sample seclist.mybbs
使用UltraEdit编辑 /home/bbs/bbssrc/site/bbsconfig.mybbs 文件和 /home/bbs/bbssrc/site/seclist.mybbs文件,修改设置使符合贵站需要。
注意bbsconfig文件中,LAST_BBS_UID、LAST_BBS_GID和LAST_BBS_USER请查询/etc/passwd 文件获得,填入当前登入Windows的用户、也就是您将用来启动 bbs服务的用户的信息。
//added by tnds
为方便查找,可以使用
cat /etc/passwd|grep [登陆windows的用户名]
应该会出来如下所示内容:
tnds:unused_by_nt/2000/xp:1005:513:U-TONYBLACK/tnds,S-1-5-21-2694818615-64420223
4-3471302810-1005:/home/tnds:/bin/bash
其中tnds即last_bbs_user所需的用户名,1005:513,前者是uid,后者是gid
//added end
bbsconfig文件中,LAST_MAXUSERS、LAST_MAXBOARD、LAST_MAXACTIVE、 LAST_MAXACTIVERUN 属于资源敏感型的数据,请根据贵站实际需要填写,其它内容请参照/home/bbs/bbssrc/bbsconfig文件中ytht.net的资料进行修改。
//added by tnds
2.5extra 关于seclist
格式为
[分区代号][分区名称]
中间用tab隔开
子分区代号为两位,第一位代表所属主分区,第二位为子分区代号
例如
0 本站系统
0Q 区务管理
下方子分区导读安排格式为
*[分区代号] [子分区代号1,2,...n]
其中分区代号与子分区代号间用tab隔开
下方descripiton系telnet登陆从分类讨论区选单中进入时显示的分区内容,为美观起见,应该一个分区说明不超过三个。
//added end
2.6 Telnet部分的安装
$ cd /home/bbs/bbssrc$ ./makedist.sh$ ./configure --with-site=mybbs
(如果需要评价文章的功能,请使用 ./configure --with-site=mybbs --with-mysql,mysql需要另外安装)
$ make$ make install
如果本步骤编译过程中出现错误,请修正错误后执行如下命令重新编译安装:
$ cd /home/bbs/bbssrc$ make clean$ make$ make install
2.7 Telnet部分测试运行及配置
$ ipc-daemon2&$ /home/bbs/bin/shminit
(如果成功会提示 everything is just fine)
$ /home/bbs/bin/bbsd
然后Telnet登陆本机测试,如果连接成功,请首先注册SYSOP (大小写敏感) 账号,再注册guest账号。(要保证guest账号是第2个注册)
如果一切顺利,请按如下所示建立bbs 运行所需项目:
- IDScanRecord版 批账号时发信用
- Board版 任命斑竹时发信用
- hell版 地狱(赋予PERM_SPECIAL3 讨论区专用权限)
- prison版 监狱(赋予PERM_SPECIAL3 讨论区专用权限)
- millionaire版 MoneyCenter相关
- /home/bbs/etc/moneyCenter目录 MoneyCenter相关
- RobUnion俱乐部 MoneyCenter相关
- deleterequest俱乐部 文章审查
- allarticle版 所有文章
- /home/bbs/2nd目录 跳蚤市场相关
//add by tnds
thanks for dinger@ytht
一个附加步骤,如果不这样操作,当使用F转寄站外信件时可能出错。
在/lib目录
建立一个文件叫sendmail
没有扩展名
里面写一行 顶头
#!/bin/sh
后面回车
把这个文件存为unix格式
用uedit里面选中当前文件右键,转换 记得#!/bin/sh要加回车,否则是无效的
//added end
2.8 Web 部分的安装
本部分安装步骤示例假设您在``更改BBS 配置''一节中对于LAST_CGIPATH和 LAST_HTMPATH采用如下取值:
- LAST_CGIPATH=/home/httpd/cgi-bin
- LAST_HTMPATH=/home/httpd/html/2001
如果您更改了这两项设置为其它目录,请自行更改下面的步骤。
$ cd /home/bbs/bbssrc/nju09$ export NOBIG5=1$ make$ mkdir -p /home/httpd/cgi-bin$ mkdir -p /home/httpd/html/2001$ make install
修改/etc/apache/httpd.conf文件,请参照如下修改方法:
--- /etc/apache/httpd.conf.default 2004-01-21 09:02:50.000000000 +0800+++ /etc/apache/httpd.conf 2004-04-29 11:39:30.000000000 +0800@@ -348,7 +348,7 @@# documents. By default, all requests are taken from this directory, but# symbolic links and aliases may be used to point to other locations.#-DocumentRoot "/var/www/htdocs"+DocumentRoot "/home/httpd/html/2001"## Each directory to which Apache has access, can be configured with respect@@ -373,7 +373,7 @@## This should be changed to whatever you set DocumentRoot to.#- + ## This may also be "None", "All", or any combination of "Indexes",@@ -638,13 +638,13 @@# The same rules about trailing "/" apply to ScriptAlias directives as to# Alias.#- ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"+ ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"## "/var/www/cgi-bin" should be changed to whatever your ScriptAliased# CGI directory exists, if you have that configured.#- + AllowOverride NoneOptions NoneOrder allow,deny@@ -979,6 +979,17 @@# ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi#+RewriteEngine on+RewriteRule ^/Ytht.Net(.*)/bbschat(.*) /cgi-bin/www/bbschat [PT]+RewriteRule ^/Ytht.Net(.*)$ /cgi-bin/www [PT]+RewriteRule ^/$ /cgi-bin/www [PT]+ + SetHandler cgi-script++ + SetHandler cgi-script++### Section 3: Virtual Hosts## VirtualHost: If you want to maintain multiple domains/hostnames on your
=====================
//added by tnds
其中rewrite部分的ytht.net需要替换为您在bbsconfig.mybbs中所定义的smagic值
//added end
测试Web 部分之前,请确保Telnet部分已启动,并且已经有用户登陆上去,见 ``Telnet部分测试运行及配置''一节。然后启动httpd:
$ /usr/sbin/httpd
如果没有异常,请用浏览器访问 http://localhost/,可以看到蔬菜图。
2.9 转信部分的安装
$ cd /home/bbs/bbssrc/innbbsd$ make cygwin$ make install
其它配置请参考 http://cn-bbs.org/的说明。
2.10 Ftp 部分的安装
$ cd /home/bbs/bbssrc/yftpd$ make$ make install
测试Ftp 部分:
$ /home/bbs/ftphome/yftpd
2.11 atthttpd部分的安装
$ cd /home/bbs/bbssrc/atthttpd$ make$ cp *.exe /home/bbs/bin
测试atthttpd部分:
$ /home/bbs/bin/atthttpd
2.12 sshbbsd部分的安装
首先设定环境变量,选择安装sshbbsd 时使用的autotools 版本,如果希望此设定在下次启动cygwin控制台时仍然有效,可以把它写入 /.bash_profile 配置文件,并重新启动cygwin控制台。
$ export WANT_AUTOCONF_VER=2.59$ export WANT_AUTOMAKE_VER=1.7.9
安装cygwin的gmp 4.1.2的二进制包及其源码包,并按以下步骤重新编译gmp:首先修改/usr/src/gmp-4.1.2-1.sh
--- gmp-4.1.2-1.sh.old 2004-06-08 23:33:52.000000000 +0800+++ gmp-4.1.2-1.sh 2004-06-08 23:35:46.000000000 +0800@@ -64,7 +64,7 @@target=i686-pc-cygwinprefix=/usrsysconfdir=/etc-MY_CFLAGS="-O2 -g -fomit-frame-pointer -march=i486 -mcpu=i686"+MY_CFLAGS="-O2 -fomit-frame-pointer -march=i486 -mcpu=i686"MY_LDFLAGS=mkdirs() {
执行如下命令编译gmp:
$ cd /usr/src$ ./gmp-4.1.2-1.sh all
完成后,把在/usr/src目录生成的gmp-4.1.2-1.tar.bz2 压缩包中的文件 usr/bin/cyggmp-3.dll复制到/bin目录,并覆盖原文件。
如果当前使用的windows 用户的cygwin家目录与bbs 安装目录不同,请将bbs 安装目录下的bin 目录符号链接到家目录中。例如,当前windows用户Administrator 家目录为/home/Administrator,如果bbs安装在/home/bbs 目录,则建立如下符号链接:
$ ln -s /home/bbs/bin /home/Administrator
下面开始sshbbsd的编译安装:
$ cd /home/bbs/bbssrc/smth-sshbbsd$ ./makedist.sh$ ./configure$ make$ make generate-host-key$ make update
测试sshbbsd部分:
$ /home/bbs/bin/sshbbsd
2.13 Cron的配置
$ cp /home/bbs/bbssrc/site/crontab.sample /var/cron/tabs
依照贵站具体情况改写/var/cron/tabs/crontab.sample 文件,然后将文件改名为用来运行bbs服务的Windows用户名。
测试:
$ /usr/sbin/cron
2.14 启动BBS 服务
如果按照``初次安装''部分操作,bbs 服务已经启动了。以后要启动bbs 服务,请按如下步骤操作:
$ ipc-daemon2&$ /home/bbs/bin/shminit$ /home/bbs/bin/bbsd$ /home/bbs/bin/bbslogd&$ /usr/sbin/cron$ /usr/sbin/httpd$ /home/bbs/innd/innbbsd$ /home/bbs/ftphome/yftpd
使用如下命令可以察看当前进程情况:
$ ps
3. 修改代码后重新安装
3.1 修改代码的注意事项
做任何修改前请务必备份关键数据。
修改某目录代码后,需要在该目录重新编译安装。如果修改了ythtlib 目录或libythtbbs目录的代码,需要在所有目录重新编译安装;如果修改了src 目录的代码,还需要在smth-sshbbsd目录重新编译安装(如果安装了sshbbsd服务)。
如果修改了共享内存相关的数据结构,需要重新启动所有bbs服务。
不要在/home/bbs/bbssrc目录make install,会破坏现有数据。
3.2 ythtlib目录的修改
$ cd /home/bbs/bbssrc/ythtlib$ make clean$ make$ make install
3.3 libythtbbs目录的修改
$ cd /home/bbs/bbssrc/libythtbbs$ make clean$ make$ make install
3.4 src目录的修改
$ cd /home/bbs/bbssrc/src$ make clean$ make$ install --backup=t *.exe /home/bbs/bin
3.5 local_utl目录的修改
$ cd /home/bbs/bbssrc/local_utl$ make clean$ make depend$ make$ make install
3.6 nju09目录的修改
$ cd /home/bbs/bbssrc/nju09$ export NOBIG5=1$ make clean$ make$ make install
3.7 innbbsd目录的修改
$ cd /home/bbs/bbssrc/innbbsd$ make clean$ make cygwin$ make install
3.8 yftpd目录的修改
$ cd /home/bbs/bbssrc/yftpd$ make clean$ make$ install --backup=t *.exe /home/bbs/ftphome
3.9 atthttpd目录的修改
$ cd /home/bbs/bbssrc/atthttpd$ make clean$ make$ install --backup=t *.exe /home/bbs/bin
3.10 smth-sshbbsd目录的修改
$ cd /home/bbs/bbssrc/smth-sshbbsd$ make clean$ make$ make update
- YTHT BBS在Cygwin环境安装手册
- YTHT BBS在cygwin安装手册
- ytht bbs 安装手册
- ytht代码在cygwin的移植问题
- cygwin下安装man手册
- cygwin环境安装NuSMV
- 在Linux环境上安装memcached手册
- 在Win2003下基于Cygwin环境的LEACH安装
- 在Win2003下基于Cygwin环境的LEACH安装
- 在cygwin安装Mysql
- YTHT特别服务安装指南
- Cygwin安装及环境配置
- YTHT代码修正-CYGWIN赌场通杀问题
- Windows下Cygwin环境的Hadoop安装(4)- 在Eclipse中建立hadoop开发环境
- Windows下Cygwin环境的Hadoop安装(4)- 在Eclipse中建立hadoop开发环境
- 在Windows7安装CygWin失败
- 安装 Cygwin 在windows 上
- 在cygwin中安装软件
- 软考高程日记及参考书
- 工作日志和感想!
- 第一篇文章,新的开始
- My FlyBean V1.00的文档
- ht的文章审查功能
- YTHT BBS在Cygwin环境安装手册
- VB实现文件数据对SQL Server上传下载
- [FW]TIOBE Programming Community Index for January 2005
- 认识ASP.NET配置文件Web.config
- 增加邮箱容量 (懒得重新config了,直接增加2或更多倍!)
- vbs实现的下拉框对应键入值
- 歪批IT系列之“伪热门”人才
- 打杂是磨练之道
- Coding References