Skip to content

bmybbs/bmybbs

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
db
 
 
doc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
web
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

BMYBBS Backend Build Status Frontend Build Status Coverity Scan Build Status

BMYBBSYTHT 代码的一个分支,被使用在西安交通大学兵马俑 BBS。 当前开发和运行环境使用的是 Ubuntu 20.04 / gcc 9.3.0,测试环境使用的是 Ubuntu 20.04 / gcc 10.2.0。

BMYBBS 已经和最初的 YTHT 系统不兼容。由于能力和精力有限,本项目未提供升级或者转换程序,同时代码中或许移除掉了一些可移植性相关的宏或者代码,因此本项目亦不能保证在其他 Linux 发行版或者 POSIX 系统上运行。

如果您仅需要反馈问题,可以前往 issues 查找是否已被反馈,或者提交新的 issue 。如果对于 BMYBBS 的开发、运行感兴趣,以下指南或许可以给您帮助。

环境准备

工具和库

在编译过程中需要使用到的一些工具和库

sudo apt install build-essential libtool cmake gdb chrpath \
	apache2 libapache2-mod-perl2 mysql-server redis-server \
	libmysqlclient-dev libpcre3-dev libjson-c-dev libhiredis-dev \
	libxml2-dev libgmp-dev libcurl4-openssl-dev

以下工具亦可能带来帮助:

sudo apt install language-pack-zh-hans git zsh tmux

本项目还依赖于 libghthash、onion 以及 check ,相关编译安装可以在 GitHub CI 配置文件 找到。

用户环境

BMYBBS 运行使用 bbs 用户身份,其 UID/GID 均为 999。如果系统中已有用户和组使用了这些 ID,例如在 Ubuntu 20.04 中被 systemd-coredump 占用,可以参照如下命令:

sudo groupmod -g 1999 systemd-coredump
sudo usermod  -u 1999 systemd-coredump

使用如下命令创建 bbs 用户和用户组:

sudo groupadd -g 999 bbs
sudo adduser --uid 999 --gid 999 bbs

初始化 bbs 相关目录和配置文件

以下是典型的使用,其中某些值可能已经作为常量写入了代码,建议除了 LOCALIP 外保持一致。

BBS_HOME=/home/bbs \
HTMPATH=/home/apache/htdocs/bbs \
CGIPATH=/home/apache/cgi-bin/bbs \
LOCALIP=202.117.1.8 \
sudo -E ./PrepDirs.sh

编译

# 假设您已经在 bmybbs 代码根目录
mkdir build
cd build
cmake ..
make

这里的编译应该是成功的。单元测试中一些验证码相关的用例会因为您缺少数据而不通过,因此您可以忽略执行单元测试。

已知问题: 当前使用 cmake 构建的 sshbbsd 会在建立连接后断开并终止子进程,因此需要使用原先的 Makefile 方式。建议参考 编译sshbbsd的过程.txt

安装

参考 install_binaries_and_libraries.sh,典型使用方法:

# 整体安装,此处假设您位于上一步编译的目录下(即 build 目录)
../install_binaries_and_libraries.sh .

# 单独更新,例如 libytht.so 和 bbsd,此处假设您位于上一步编译的目录下(即 build 目录)
../install_binaries_and_libraries.sh libytht/libytht.so /home/bbs/lib/libytht.so
../install_binaries_and_libraries.sh src/bbsd/bbsd /home/bbs/bin/bbsd

额外配置

apache2

  1. /etc/apache2/envvars 中设置 APACHE_RUN_USERAPACHE_RUN_GROUPbbs
  2. 使用 a2enmod(8) 启用 rewritecgid 两个模块。

重启 apache2 以生效。

系统调试

BBS 存在很多缺陷,难免会意外终止程序,这时借助 gdb 和转储文件可以帮助很多。参考以下配置:

ulimit -c unlimited
sysctl -w kernel.core_pattern='/core/%e.%t.%u.%g.%s.%p'

其他

如果您在编译安装中遇到未提及的情况,可能在如下文档中能找到帮助信息:

About

The project for bmybbs, which is the official Bulletin Board System of Xi'an Jiaotong University.

Resources

License

Stars

Watchers

Forks