/[LeafOK_CVS]/lbbs/INSTALL.zh_CN.md
ViewVC logotype

Diff of /lbbs/INSTALL.zh_CN.md

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.23 by sysadm, Mon Jan 5 06:04:24 2026 UTC Revision 1.26 by sysadm, Sat Jan 10 06:53:26 2026 UTC
# Line 1  Line 1 
1  安装说明  # 安装说明
 ==================  
 请按照以下步骤在Linux (例如: Debian 13, CentOS Stream 10) 上进行LBBS的编译和安装:  
   
 0) 准备工作    
    按照[leafok_bbs](https://github.com/leafok/leafok_bbs)下README.md的说明,初始化Web/Telnet版本共享的数据库。    
    强烈建议先按照Web版本的说明完成基础功能的配置和验证,再开始Telnet版本的安装。  
   
 1) 通用工具/基础库依赖    
    gcc >= 14.2    
    autoconf >= 2.68    
    automake >= 1.16    
    php >= 8.2    
    mysql >= 8.4    
    (Debian / Ubuntu 用户)    
    sudo apt-get install -y libssh-dev libsystemd-dev    
    (For CentOS / RHEL 用户)    
    sudo dnf install -y libssh-devel systemd-devel    
    (MSYS2 with MinGW-w64 toolchain 用户)    
    pacman -S --needed msys2-runtime-devel libssh libssh-devel pcre2-devel mingw-w64-x86_64-libiconv mingw-w64-x86_64-libmariadbclient    
   
 2) 从Github导出或下载源代码文件    
    运行以下命令来初始化autoconf/automake环境:    
    autoreconf --install --force  
   
 3) 编译源代码    
    export LBBS_HOME_DIR=/usr/local/lbbs    
    (Linux用户)    
    ./configure --prefix=$LBBS_HOME_DIR    
    (MSYS2用户: 需要MinGW-w64)    
    ./configure --prefix=$LBBS_HOME_DIR --disable-shared PKG_CONFIG_PATH=/mingw64/lib/pkgconfig/    
    make  
   
 4) 建立用户和组    
    sudo useradd bbs  
   
 5) 安装程序文件和数据文件    
    sudo make install    
    chown -R bbs:bbs $LBBS_HOME_DIR  
   
 6) 修改以下配置文件    
    默认配置文件被命名为*.default,请先将其改名。    
    $LBBS_HOME_DIR/conf/bbsd.conf    
    $LBBS_HOME_DIR/conf/bbsnet.conf    
    $LBBS_HOME_DIR/conf/badwords.conf    
    $LBBS_HOME_DIR/utils/conf/db_conn.conf.php    
   
 7) 运行以下脚本来生成菜单配置文件和版块精华区数据文件    
    sudo -u bbs php $LBBS_HOME_DIR/utils/bin/gen_section_menu.php    
    sudo -u bbs php $LBBS_HOME_DIR/utils/bin/gen_ex_list.php    
   
 8) 将MySQL服务器的CA证书文件,复制到$LBBS_HOME_DIR/conf/ca_cert.pem    
   
 9) 创建SSH2 RSA / ED25519 证书    
    ssh-keygen -t rsa -C "Your Server Name" -f $LBBS_HOME_DIR/conf/ssh_host_rsa_key    
    ssh-keygen -t ed25519 -C "Your Server Name" -f $LBBS_HOME_DIR/conf/ssh_host_ed25519_key    
    ssh-keygen -t ecdsa -C "Your Server Name" -f $LBBS_HOME_DIR/conf/ssh_host_ecdsa_key    
   
 10) 启动服务程序    
    sudo -u bbs $LBBS_HOME_DIR/bin/bbsd  
   
 11) (可选) 配置systemd    
    基于conf/lbbs.service创建/usr/lib/systemd/system/lbbs.service,并进行必要的修改。    
    刷新配置并启动服务。    
   
 12) (可选) 配置logrotate    
    基于conf/lbbs.logrotate创建/etc/logrotate.d/bbsd,并进行必要的修改。    
    重启logrotate服务。    
   
 13) 服务异常终止时的清理    
    由于未预期的错误或者不当操作导致lbbs进程异常终止时,在重启服务之前可能需要进行共享内存/信号量的清理。先运行以下命令检测:    
    sudo -u bbs ipcs    
    正常情况下不存在所有者是bbs的项。否则,请运行以下命令清理:    
    sudo -u bbs ipcrm -a  
   
   
 Docker用户  
 ==================  
 你可以从源代码位置生成容器镜像:    
    docker compose up --build -d    
2    
3  也可以从Docker Hub下载镜像文件:    英文版本的安装说明位于 [INSTALL.md](INSTALL.md)。
    docker compose pull    
4    
5  记得需要根据本地配置 (数据库连接、服务端口等) 修改配置文件,步骤见上节。    要在 Linux(例如:Debian 13、CentOS Stream 10)上安装 LBBS,请按照以下步骤操作:
6    
7    ## 0. 准备工作
8    
9    按照 [leafok_bbs](https://github.com/leafok/leafok_bbs) 中的 README.md 说明,初始化 Web 和 Telnet 版本共享的数据库结构。
10    
11    强烈建议先完成 Web 版本的配置步骤,并确保这些功能正常工作。
12    
13    ## 1. 通用要求
14    
15    - gcc >= 13.3
16    - autoconf >= 2.68
17    - automake >= 1.16
18    - php >= 8.2
19    - mysql >= 8.4
20    
21    ### 发行版特定软件包
22    
23    **Debian / Ubuntu:**
24    ```bash
25    sudo apt-get install -y libssh-dev libsystemd-dev
26    ```
27    
28    **CentOS / RHEL:**
29    ```bash
30    sudo dnf install -y libssh-devel systemd-devel
31    ```
32    
33    **MSYS2 with MinGW-w64 工具链:**
34    ```bash
35    pacman -S --needed msys2-runtime-devel libssh libssh-devel pcre2-devel mingw-w64-x86_64-libiconv mingw-w64-x86_64-libmariadbclient
36    ```
37    
38    ## 2. 提取源代码文件
39    
40    从 tarball 或 GitHub 导出源代码文件。
41    
42    运行以下命令来设置 autoconf/automake 环境:
43    ```bash
44    autoreconf --install --force
45    ```
46    
47    ## 3. 编译源代码
48    
49    ```bash
50    export LBBS_HOME_DIR=/usr/local/lbbs
51    ```
52    
53    **对于 Linux:**
54    ```bash
55    ./configure --prefix=$LBBS_HOME_DIR
56    ```
57    
58    **对于 MSYS2 with MinGW-w64 工具链:**
59    ```bash
60    ./configure --prefix=$LBBS_HOME_DIR --disable-shared PKG_CONFIG_PATH=/mingw64/lib/pkgconfig/
61    ```
62    
63    ```bash
64    make
65    ```
66    
67    ## 4. 创建用户和组
68    
69    ```bash
70    sudo useradd bbs
71    ```
72    
73    ## 5. 安装二进制和数据文件
74    
75    ```bash
76    sudo make install
77    chown -R bbs:bbs $LBBS_HOME_DIR
78    ```
79    
80    ## 6. 修改配置文件
81    
82    默认配置文件保存为 `*.default`。首先复制并重命名它们:
83    
84    ```bash
85    cd $LBBS_HOME_DIR
86    cp conf/bbsd.conf.default conf/bbsd.conf
87    cp conf/bbsnet.conf.default conf/bbsnet.conf
88    cp conf/badwords.conf.default conf/badwords.conf
89    cp utils/conf/db_conn.conf.php.default utils/conf/db_conn.conf.php
90    ```
91    
92    然后编辑每个文件以匹配您的环境:
93    
94    ### bbsd.conf
95    需要调整的关键设置:
96    - `db_host`, `db_username`, `db_password`, `db_database`: MySQL 连接详情
97    - `bbs_server`, `bbs_port`, `bbs_ssh_port`: 网络设置
98    - `bbs_name`: 您的 BBS 名称
99    - `bbs_max_client`: 最大并发连接数(根据服务器容量调整)
100    
101    ### db_conn.conf.php
102    设置数据库连接参数:
103    - `$DB_hostname`, `$DB_username`, `$DB_password`, `$DB_database`
104    
105    ### bbsnet.conf & badwords.conf
106    根据您的 BBS 策略进行审查和自定义。
107    
108    ## 7. 复制 MySQL CA 证书
109    
110    将 MySQL 服务器的 CA 证书文件复制到 `$LBBS_HOME_DIR/conf/ca_cert.pem`。
111    
112    ## 8. 生成菜单配置文件
113    
114    运行以下脚本以生成包含版块数据的菜单配置文件:
115    
116    ```bash
117    sudo -u bbs php $LBBS_HOME_DIR/utils/bin/gen_section_menu.php
118    sudo -u bbs php $LBBS_HOME_DIR/utils/bin/gen_ex_list.php
119    sudo -u bbs php $LBBS_HOME_DIR/utils/bin/gen_top.php
120    ```
121    
122    ## 9. 创建 SSH2 证书
123    
124    为 SSH 服务器组件生成 SSH 主机密钥。`-N ""` 标志为密钥设置空密码(自动化服务启动所需)。
125    
126    ```bash
127    ssh-keygen -t rsa -C "您的服务器名称" -N "" -f $LBBS_HOME_DIR/conf/ssh_host_rsa_key
128    ssh-keygen -t ed25519 -C "您的服务器名称" -N "" -f $LBBS_HOME_DIR/conf/ssh_host_ed25519_key
129    ssh-keygen -t ecdsa -C "您的服务器名称" -N "" -f $LBBS_HOME_DIR/conf/ssh_host_ecdsa_key
130    ```
131    
132    ## 10. 启动
133    
134    ```bash
135    sudo -u bbs $LBBS_HOME_DIR/bin/bbsd
136    ```
137    
138    ## 11. (可选)设置 systemd
139    
140    从 `conf/lbbs.service` 中的示例创建您自己的 `/usr/lib/systemd/system/lbbs.service`,并进行任何必要的更改。
141    
142    重新加载守护进程配置并启动服务。
143    
144    ## 12. (可选)设置 logrotate
145    
146    从 `conf/lbbs.logrotate` 中的示例创建您自己的 `/etc/logrotate.d/lbbs`,并进行任何必要的更改。
147    
148    重新启动 logrotate 服务。
149    
150    ## 13. 服务异常终止时的清理
151    
152    如果发生意外故障或操作不当导致 LBBS 进程异常终止,在重新启动进程之前可能需要手动清理共享内存/信号量。
153    
154    ### 何时需要清理
155    - `bbsd` 进程崩溃或被强制终止后
156    - 如果 `bbsd` 启动时出现"共享内存已存在"错误
157    - 当 `ipcs` 显示属于用户 `bbs` 的资源时
158    
159    ### 检查孤儿资源
160    首先,检查是否有剩余的共享内存段或信号量:
161    ```bash
162    sudo -u bbs ipcs
163    ```
164    
165    查看 "SHM"(共享内存)和 "SEM"(信号量)部分中 "OWNER" 为 `bbs` 的条目。
166    
167    ### 清理
168    如果存在资源,使用以下命令删除:
169    ```bash
170    sudo -u bbs ipcrm -a
171    ```
172    
173    这将删除 `bbs` 用户可访问的所有共享内存和信号量资源。
174    
175    ## 14. Docker 安装(替代方法)
176    
177    对于容器化部署,LBBS 提供 Docker 支持。
178    
179    ### 从源代码构建
180    要从源代码构建 Docker 镜像:
181    ```bash
182    docker compose up --build -d
183    ```
184    
185    ### 使用预构建镜像
186    要使用 Docker Hub 中的预构建镜像:
187    ```bash
188    docker compose pull
189    docker compose up -d
190    ```
191    
192    ### Docker 配置
193    使用 Docker 时,您仍然需要适当配置 LBBS:
194    
195    1. **配置文件**:按照步骤 6 中的说明创建和自定义配置文件。
196    2. **数据库连接**:确保 `db_conn.conf.php` 指向您的 MySQL 服务器(容器应能访问该服务器)。
197    3. **端口映射**:默认情况下,Docker Compose 映射:
198       - SSH 端口:2222 → 22(容器)
199       - Telnet 端口:2323 → 23(容器)
200      
201       如果需要,请在 `docker-compose.yml` 中调整这些设置。
202    4. **持久化数据**:`data/` 和 `conf/` 目录作为卷挂载以实现持久化。
203    
204    ### Docker Compose 管理
205    - 启动:`docker compose up -d`
206    - 停止:`docker compose down`
207    - 查看日志:`docker compose logs -f`
208    - 重启:`docker compose restart`
209    
210    有关更多详细信息,请参阅 `docker-compose.yml` 文件和 Docker 文档。


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1