荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: nighthawk.bbs@sopai.net (K!!!!!!), 信区: InstallBBS
标  题: YTHT BBS在Cygwin环境安装手册
发信站: 派派_BBS (Fri Mar 25 14:16:38 2005)
转信站: SZU!news.szu.edu.cn!news.happynet.org!PaiPai

原文应该在这吧:
http://www.ytht.net/Ytht.Net/home/boards/BBSDev/html/INSTALL.cygwin.html

YTHT BBS在Cygwin环境安装手册
YTHT BBS 系统维护组
v0.1, 11 May 2004 本文档主要描述如何在MS Windows平台上的Cygwin环境里面安装YTHT
BBS软件

1. 概述

    * 1.1 一些约定
    * 1.2 系统环境
    * 1.3 YTHT BBS代码概述
    * 1.4 关于提问

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 代码

$ cd /home
$ mkdir bbs
$ cd bbs
$ export CVSROOT=:pserver:bbsdev@ytht.net:/home/cvs
$ cvs login

(密码是:bbsdev)

$ cvs -z 9 co bbs
$ mv bbs bbssrc

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,v
retrieving revision 1.30
diff -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,v
retrieving revision 1.11
diff -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,v
retrieving revision 1.3
diff -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};

 int
 isfakedir(char *file)
Index: bbs/src/bbs.c
===================================================================
RCS file: /home/cvs/bbs/src/bbs.c,v
retrieving revision 1.535
diff -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",

2.4 目录software的安装

$ 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服务的用
户的信息。

bbsconfig文件中,LAST_MAXUSERS、LAST_MAXBOARD、LAST_MAXACTIVE、
LAST_MAXACTIVERUN 属于资源敏感型的数据,请根据贵站实际需要填写,其它内容请参照
/home/bbs/bbssrc/bbsconfig文件中ytht.net的资料进行修改。
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目录 跳蚤市场相关

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.
 #
-<Directory "/var/www/htdocs">
+<Directory "/home/httpd/html/2001">

 #
 # 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.
     #
-    <Directory "/var/www/cgi-bin">
+    <Directory "/home/httpd/cgi-bin">
         AllowOverride None
         Options None
         Order allow,deny
@@ -979,6 +979,17 @@
 #    ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
 #</Location>

+RewriteEngine on
+RewriteRule ^/Ytht.Net(.*)/bbschat(.*) /cgi-bin/www/bbschat [PT]
+RewriteRule ^/Ytht.Net(.*)$ /cgi-bin/www [PT]
+RewriteRule  ^/$        /cgi-bin/www [PT]
+<Location /cgi-bin/www>
+        SetHandler cgi-script
+</Location>
+<Location /cgi-bin/www/bbschat>
+        SetHandler cgi-script
+</Location>
+
 ### Section 3: Virtual Hosts
 #
 # VirtualHost: If you want to maintain multiple domains/hostnames on your

测试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-cygwin
 prefix=/usr
 sysconfdir=/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


--
※ 来源:.派派 BBS sopai.net.[FROM: 211.160.20.226]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店