前言
本软件包包含 AsmBB 论坛引擎,这是一个高性能的 Web 论坛引擎,完全使用汇编语言编写。
本软件包为该引擎的二进制发行版,但它是免费开源的,采用 EUPL 许可证(参见 License.txt 文件)。您可以从源代码仓库(fossil)下载源代码,仓库地址位于:
http://asm32.info/fossil/repo/asmbb/
先决条件
要使用 AsmBB,您需要一个正在运行的 Web 服务器,并且该服务器需支持 FastCGI 协议。大多数 Web 服务器都能胜任,尤其是 Apache。
您可以将 AsmBB 安装在本地服务器(用于测试)、共享主机或任何其他托管环境中。
唯一的强制性条件是:服务器必须运行在 x86 或 x86-64 架构的 Linux 平台上,并且必须启用 FastCGI 模块(大多数运行 PHP 的服务器默认已启用该模块)。
AsmBB 是自包含的,不需要在服务器上安装任何额外的库或数据库。
为了向论坛用户发送邮件,AsmBB 需要一个 SMTP 服务器的地址和端口号,该 SMTP 服务器必须能从您的 Web 服务器无认证地访问。大多数由网络托管服务商提供的 SMTP 服务器在从本地网络(即网站引擎所在服务器)连接时,通常无需身份验证。
安装
首先将文件解压到一个临时目录。根据您使用的 Web 服务器,编辑文件 .htaccess(Apache)或 lighttpd.conf(lighttpd)——
将占位符 _FULL_PATH_TO_DOCUMENT_ROOT_HERE_ 替换为您的文档根目录(document root)的实际路径(具体路径取决于 Web 服务器的配置)。
重要提示:请确保上传的文件对 www-data 用户(即 Web 服务器用户)具有正确的权限。
www-data 用户需要对 DOCUMENT_ROOT 目录拥有写入权限,而可执行文件必须设置为 755 权限。
Lighttpd 用户特别注意:
软件包中提供的 lighttpd.conf 文件仅为示例。Lighttpd 的配置文件通常位于 /etc/lighttpd/lighttpd.conf,
以及 /etc/lighttpd/conf-enabled/ 目录下的所有文件。您需要以某种一致的方式,将示例配置合并到现有的配置文件中,
然后重启 lighttpd 服务。
如果您使用的是其他 Web 服务器,请自行准备相应的配置。
将软件包中的所有文件(及目录)上传到 Web 服务器的 document_root 目录中。
重要提示:本软件包可能包含一些符号链接(symlinks)。请确保这些符号链接与文件一同上传。 请注意,**FTP 无法上传符号链接**。
最简单的方法是将压缩包(tarball)上传到服务器,然后通过 cPanel 工具、SSH 或其他方式在服务器上直接解压。
请参阅下方“通过 FTP 在 Apache 上简易安装”一节,了解如何通过 FTP 正确上传文件。
在您喜欢的浏览器中打开网站,测试论坛是否正常运行。
就是这么简单。
通过 FTP 在 Apache 上简易安装
从以下地址下载软件包 “unpack.tar.gz”:
http://asm32.info/fossil/repo/asmbb/doc/trunk/install/unpack.tar.gz
解压该文件。其中包含两个文件:`.htaccess` 和 unpack.sh。
通过 FTP 或其他方式,将这两个文件以及 asmbb.tar.gz 上传到服务器的文档根目录(document_root)中。
上传完成后,根目录中必须包含以下 3 个文件:
.htaccess asmbb.tar.gz unpack.sh
在浏览器中访问:http://your_web_site/unpack.sh
该脚本将自动解压所有文件,生成正确的 .htaccess 配置,并将您重定向到新创建的论坛页面(此时论坛处于初始设置模式)。
在使用 nginx 和 systemd 的 VPS 上安装
先决条件
一台已安装 GNU/Linux 操作系统并使用 systemd 的 VPS。
已安装并正常运行的 Nginx Web 服务器。本文仅说明如何集成 AsmBB。
安装 AsmBB
从以下永久链接下载最新的二进制软件包
创建一个新目录,用于存放论坛子域名的内容。此处以 /PATH/TO/FORUM/ 为例。将下载的文件放入该目录中。
使用以下命令解压:
$ tar -xvzf asmbb.tar.gz
$ mv asmbb/* ./
$ rm -rf asmbb/
解压完成后,目录中会包含一些非必需的文件,例如文本文件和示例配置文件,可安全删除。
仅需保留子目录和 3 个可执行文件。请注意,这些子目录中可能包含重要的符号链接(symlinks),因此不能先在本地计算机解压再通过FTP上传(因为 FTP 无法传输符号链接)。
所有文件及目录必须归属于某个非 root 用户,该用户后续将用于运行 AsmBB。此处以 NON_ROOT 为例。
Nginx 配置
在 Nginx 配置文件中(位于 /etc/nginx/nginx.conf 或论坛子域名的专用配置文件中)添加以下内容:
server {
..... # 您的子域名服务器配置。
# 至少应包含 "listen" 和 "server_name" 等 Nginx 指令。
root /PATH/TO/FORUM/;
location / {
fastcgi_pass unix:/PATH/TO/FORUM/engine.sock;
include fastcgi_params;
}
}
请务必替换其中的占位符!
重启 Nginx:
$ sudo systemctl restart nginx
Systemd 配置
现在配置 systemd 服务以管理 AsmBB 引擎。
此步骤需要 root 权限。请以 root 用户身份创建文件 /etc/systemd/system/asmbb.service,内容如下(请务必将占位符 /PATH/TO/FORUM 和 NON_ROOT 替换为实际值):
[Unit]
Description=AsmBB forum engine FastCGI script.
After=nginx.service
[Service]
Type=simple
User=NON_ROOT
WorkingDirectory=/PATH/TO/FORUM
ExecStart=/PATH/TO/FORUM/engine
Restart=on-failure
[Install]
WantedBy=nginx.service
最终步骤
至此,配置已完成。您可以在浏览器中打开论坛子域名。
此时应会看到 502 Bad Gateway 错误,因为 AsmBB 尚未运行。
启动 AsmBB:
$ sudo systemctl start asmbb
刷新浏览器页面,AsmBB 的管理员设置对话框应会显示出来。 请设置您的管理员账户,之后论坛将进入正常运行模式。
如果一切顺利,可设置 AsmBB 在服务器重启时自动启动:
$ sudo systemctl enable asmbb
全部完成!
论坛配置简介
首次运行时,AsmBB 会在根目录下创建一个空的论坛数据库文件,名为 board.sqlite。
在没有任何用户注册之前,AsmBB 会处于“设置模式”,并显示管理员用户创建界面。
管理员用户的注册**无需邮件激活**,且对密码强度要求较为宽松。 但作为论坛管理员,建议您选择一个强密码,并使用您喜欢的用户名。
创建管理员用户后,论坛设置页面将**仅对具有管理员权限的用户开放**。
请在设置页面中配置 SMTP 服务器及其他论坛参数。