[开源代码] bbs1:一个极简 PHP 论坛。一键轻松部署

👑Lv.11 社区元老 ⭐ TL4 领袖
2026-10-14 10:31:12
bbs1

一个极简 PHP 论坛。由一个仅100多KB大小的PHP文件构建。纯原生、无框架、无依赖,支持 SQLite、MySQL 和 PostgreSQL。适合社区站点、低成本部署和 AI 二次开发。

特点

  • 纯原生 PHP,单核心代码文件,无框架和 Composer 依赖,部署与维护简单
  • 支持 SQLite、MySQL 和 PostgreSQL,数据库结构和搜索能力保持跨引擎兼容
  • 包含首页、版块、主题、回帖、收藏、个人主页和后台管理等完整论坛功能
  • 支持用户组、版块权限、站点设置、注册控制、发帖限制和附件管理
  • 插件机制支持 Hook、路由、后台页面、资源合并、在线安装更新和统一计划任务
  • 站点设置、版块和用户组按需懒加载,数据库结构简单,负载能力强
  • 支持 AJAX 交互和响应式布局,兼顾 PC 与移动端使用体验

环境

源码部署最低要求:

软件版本要求说明
PHP8.1 及以上PHP 8.5 与当前 Docker 镜像一致
PDO随 PHP 安装至少启用下方所选数据库对应的扩展
SQLiteSQLite 3通过 pdo_sqlite 使用
MySQL8.0 及以上通过 pdo_mysql 使用
PostgreSQL13 及以上通过 pdo_pgsql 使用
Web 服务Nginx 或 ApacheApache 需启用 PHP-FPM/模块及 URL 重写

使用 Docker 部署还需要 Docker Engine 24 及以上、Docker Compose v2 和 unzip。Docker Compose 当前配置使用 PHP 8.5-fpm、MySQL 8.4、PostgreSQL 18 和 Nginx Alpine 镜像;源码运行时仍以 PHP 8.1+ 为最低要求。

演示

https://bbs1.org

代码仓库

https://github.com/bbs1git/bbs1org

Docker 源码部署

服务器需先安装 Docker Engine 24+、Docker Compose v2 和 unzip。Docker 可使用以下命令安装:

curl -fsSL https://get.docker.com -o install-docker.shsudo sh install-docker.shbash

从 源码下载 获取程序包和 Docker 部署包,解压后的 bbs1org、bbs1org_docker 目录应放在同一目录下。

curl -fL 'https://bbs1.org/plugin_market_source?path=bbs1org.zip&download=1' -o bbs1org.zipcurl -fL 'https://bbs1.org/plugin_market_source?path=bbs1org_docker.zip&download=1' -o bbs1org_docker.zip unzip -q bbs1org.zipunzip -q bbs1org_docker.zip cd bbs1org_dockercp .env.example .env# 如需修改端口或数据库模式,请先编辑 .envdocker compose up -dbash

容器启动后访问默认8080端口:

http://服务器地址:8080text

首次访问会进入网页安装程序,请在页面中设置站点、默认版块和管理员账号。

默认使用 SQLite。如需修改 8080 端口,或者启用 MySQL、PostgreSQL,请在启动前修改 .env。数据库容器会按 .env 中的 DB_NAME、DB_USER、DB_PASSWORD 初始化;网页安装时填写同样的数据库名、用户名和密码。

数据库COMPOSE_PROFILES数据库地址端口
SQLitesqlite无需填写无需填写
MySQLmysqlmysql3306
PostgreSQLpgsqlpostgres5432

常用操作(均在 bbs1org_docker 目录执行):

docker compose ps                 # 查看状态docker compose logs -f            # 查看日志docker compose restart            # 重启docker compose down               # 停止并保留数据卷bash

虚拟机部署(已有 Nginx/Apache + PHP 环境)

环境要求:

  • PHP 8.1+
  • 启用 PDO;SQLite 需 pdo_sqlite,MySQL 需 pdo_mysql,PostgreSQL 需 pdo_pgsql
  • SQLite 3、MySQL 8.0+ 或 PostgreSQL 13+
  • Web 服务运行用户对 app/data/ 有写入权限;使用 SQLite 时数据库文件也保存在该目录
  • 必须禁止 Web 直接访问 app/data/,该目录包含数据库、配置和运行缓存;部署完成后请确认访问 https://你的域名/app/data/ 返回 403 或 404

Nginx 站点配置应包含:

location ~ ^/app/(?:data|cache|plugins|optional)(?:/|$) {    deny all;}nginx

Apache 可在网站根目录的 .htaccess 中加入:

RewriteEngine OnRewriteRule ^app/(data|cache|plugins|optional)(/|$) - [F,L]apache

启用伪静态(Rewrite)时,Nginx 在站点配置中使用:

location / {    try_files $uri $uri/ /index.php?$query_string;}nginx

Apache 在启用 mod_rewrite 且允许 .htaccess(AllowOverride FileInfo 或 All)后,在网站根目录 .htaccess 中追加:

RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^ index.php [L,QSA]apache
  • 打开 源码下载,下载 bbs1org.zip。
  • 解压 ZIP,将该目录内的全部文件上传到网站目录,确保 index.php 位于网站根目录。
  • 访问站点域名,根据指示进行安装即可。
  • 使用第三方服务 (比如: cron-job.org) 定时请求服务,启用定时任务。

每分钟以 GET 方式访问:https://你的域名/index.php?a=cron

面板部署

宝塔和 1Panel 可在面板终端执行“Docker 源码部署”中的下载、解压和启动命令。

在线升级

在后台设置底部点击“升级”。检测更新时只读取源码下载入口的 bbs1org.json,确认升级后才下载所选文件。升级前请先备份数据库、附件、头像和插件目录。

数据库转换和迁移

先在新数据库完成安装并登录管理员账号,再从升级页进入“数据迁入”,或访问 index.php?a=migrate。选择旧数据库类型并填写连接信息,程序会迁入旧库的全部普通数据表;当前库没有的表会自动复制字段、主键和索引后再导入数据,同名表则清空后替换,并保留原 ID。

插件数据表会一并迁入。附件、头像和插件程序文件不在数据库中,需要另外复制 app/upload/、app/avatars/ 和 app/plugins/。迁移前请备份新旧数据库。

数据备份

SQLite数据目录 app/data/ 、附件目录 app/upload/、插件目录 app/plugins/ 需要定期备份。

AI插件开发指南

推荐使用 AI 为本项目开发插件。插件开发规范、最小示例、资源、计划任务、数据库与 Hook 说明请阅读 开发者文档。
该页面是 bbs1 唯一的插件开发规范,开发或修改插件前应完整阅读并遵守。

| 浏览 10 次 | 回复 0 次

全部回复 (0)

暂无回复

请 登录

排行榜

最新会员