Limbas 7.1.15 配置参数详解

Limbas 7.1.15 配置体系四层详解实测:include_db.lib 数据库连接与 LMB_ENC_KEY、lmb_umgvar 143 项全局配置(14 个分类与关键变量真实值)、php.ini(apache/cli 差异)、Apache vhost 与 .htaccess,含 Web 配置中心与 SQL 直改的生效验证回显

Limbas低代码自托管PHP 应用PostgreSQL表单构建2026/11/03

Limbas 7.1.15 配置参数详解

目标:把 Limbas 7.1.15 的全部配置面(数据库连接文件、UMGVAR 143 项全局配置、PHP 运行参数、Apache 虚拟主机与 .htaccess)逐项讲清「在哪改、默认值是什么、改了影响什么」。所有参数值与生效验证均来自真实服务器 limbas-server(Ubuntu 22.04.5 + Apache 2.4.52 + PHP 8.3.36 + PostgreSQL 14.24,安装路径 /opt/limbas/openlimbas-7.1.15,库 limbasdb)实测。安装过程见《Ubuntu 22.04 安装 Limbas 7.1.15 指南》,日常命令见《Limbas 7.1.15 常用运维命令与排障实操》。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64),主机名 limbas-server,IP 10.89.59.2
  • 应用:Limbas(openlimbas)7.1.15,安装目录 /opt/limbas/openlimbas-7.1.15,Web 端口 80
  • PHP:8.3.36(PPA ondrej/php),Apache mod_php 形态(php.ini 路径 /etc/php/8.3/apache2/php.ini)
  • 数据库:PostgreSQL 14.24,库 limbasdb(152 张表),应用账号 limbas / q1w2e3r4
  • 管理员:admin / q1w2e3r4(演示账号)

二、前置条件

  1. 已完成 7.1.15 部署且能登录(Web 入口 http://limbas-server/);
  2. 具备服务器 root 权限(改 php.ini/vhost)与数据库访问权限(改 UMGVAR/include_db.lib):
PGPASSWORD=q1w2e3r4 psql -h 127.0.0.1 -U limbas -d limbasdb -tAc "SELECT count(*) FROM lmb_umgvar"
143
  1. 改前建议先做一次库备份(pg_dump 方法见运维篇)。

三、参数查看与修改方式

3.1 Web 配置中心(推荐入口)

登录后访问系统变量页(实测回显):

curl -s -b /tmp/cookies.txt -o /tmp/umgvar.html -w "HTTP %{http_code} size=%{size_download}\n" \
  "http://localhost/index.php?action=setup_umgvar"
HTTP 200 size=111871

该页按 14 个分类渲染全部 UMGVAR 项(表单字段类型由 field_type 列决定:文本/下拉/数字等),修改即写回 lmb_umgvar.norm 列,无需重启 Apache 即时生效。

3.2 SQL 直读直改

配置真值全部存于 lmb_umgvar(列:category sort id beschreibung field_type field_options form_name norm,值在 norm 列)。以修改登录页标题(变量 110「custom title %s」)为例,实测命令与回显:

PGPASSWORD=q1w2e3r4 psql -h 127.0.0.1 -U limbas -d limbasdb -c \
  "UPDATE lmb_umgvar SET norm='Limbas-Server - %s' WHERE id=110;"
curl -s http://localhost/ | grep -o "<title>[^<]*</title>"
UPDATE 1
<title>Limbas-Server - Login</title>

改回原值同样两步(UPDATE 1 + <title>Limbas-Demo - Login</title>,实测),证明 SQL 路径与 Web 路径等价、即时生效。

⚠️ 注意:lmb_umgvar 的分类名(category 数字)经语言表映射渲染,不同语言下显示名不同;本文一律以 id + beschreibung(英文描述原文)定位,避免歧义。

3.3 文件层配置

文件管什么生效方式
dependent/inc/include_db.lib数据库连接、加密密钥即时(每请求读取)
/etc/php/8.3/apache2/php.iniPHP 运行时(上传/内存/超时)systemctl reload apache2
/etc/apache2/sites-enabled/limbas.conf站点根、日志systemctl reload apache2
public/.htaccessURL 重写、认证透传即时(AllowOverride All 前提下)

四、参数总览

Limbas 的配置面分四层,互相独立:

层位置项数典型内容
应用全局层(UMGVAR)数据库表 lmb_umgvar143安装路径、备份路径、默认语言/时区、索引策略、安全开关
数据库连接层文件 include_db.lib12+1库类型/账号/口令/主机/端口/字符集/加密密钥
PHP 运行层php.ini(apache 与 cli 两份)4 关键memory_limit、upload_max_filesize、post_max_size、max_execution_time
Web 服务层vhost + .htaccess—DocumentRoot、重写规则、Authorization 透传、独立日志

五、核心参数分类详解

5.1 数据库连接:include_db.lib

实测全文(/opt/limbas/openlimbas-7.1.15/dependent/inc/include_db.lib):

$DBA['DB']='postgres'; $DBA['DBCUSER']='limbas'; $DBA['DBCPASS']='q1w2e3r4'; $DBA['DBCNAME']='limbasdb';
$DBA['DBUSER']='limbas'; $DBA['DBPASS']='q1w2e3r4'; $DBA['DBNAME']='limbasdb'; $DBA['DBSCHEMA']='public';
$DBA['DBHOST']='localhost'; $DBA['LMHOST']='localhost'; $DBA['PORT']='5432'; $DBA['CHARSET']='UTF-8';
$DBA['ODBCDRIVER']='PDO';
define('LMB_ENC_KEY','bc22c1447d60013887b7da62e48297e2773c27a283924bf48701c9d1d1f39b58');

逐项说明:

  • DB:库类型,取值 postgres(本环境);文件注释还列出 maxdb76 | masbd77 | postgres | ingres 历史支持值,MySQL/MSSQL/Oracle 走 PDO/ODBC 路线(官方 README 支持清单);
  • DBCUSER/DBCNAME 与 DBUSER/DBNAME 两组:连接期与运行期账号(本环境同值 limbas/limbasdb);
  • DBSCHEMA='public':Limbas 把所有表放单一 schema;
  • DBHOST='localhost' + PORT='5432':走 TCP 本机(对应 pg_hba.conf 的 host all all 127.0.0.1/32 scram-sha-256 行,实测);
  • CHARSET='UTF-8':应用侧字符集,与库编码 UTF8 一致(psql -l 实测);
  • ODBCDRIVER='PDO':数据访问走 PHP PDO(php8.3-pgsql 扩展),不依赖 unixODBC DSN;
  • LMB_ENC_KEY:64 位十六进制加密密钥,安装时生成,用于应用内加密字段;泄露等于库上加密失效,生产环境须按密钥管理,权限 600、属主 www-data。

5.2 UMGVAR 分类体系

143 项按 category 分 14 组(实测分布回显):

PGPASSWORD=q1w2e3r4 psql -h 127.0.0.1 -U limbas -d limbasdb -c \
  "SELECT category, count(*) FROM lmb_umgvar GROUP BY category ORDER BY category;"
 category | count
----------+-------
     1893 |    21
     1894 |     1
     1895 |     4
     1896 |    13
     1898 |     9
     1899 |    16
     1900 |    13
     1995 |     5
     2700 |     7
     2818 |    29
     2819 |     9
     2820 |     7
     2935 |     4
     2995 |     5
(14 rows)

按各分类成员变量的 beschreibung 归纳(实测):

category项数内容域(按成员变量归纳)
189321安装/全局默认:路径、公司名、新用户的语言/时区/布局/分页/日志级别、标题、更新检查
18941调度路径:id 59 crontab 路径
18954字体/字符集:默认字体、字号、charset、multiframe
189613列表与交互:锁定时长、最大行数、modal 尺寸/打开方式、刷新间隔
18989检索索引:索引文件类型、大小写敏感、Detail-Level、执行时限
189916DMS/媒体文件:mimetype 校验、EXIF、重名处理、下载方式、md5 去重
190013安全/认证/会话:代理白名单、HTTP 认证方式、口令散列算法、加密方法、会话保存时长
19955诊断/调试:messages.log、错误解析开关、明文口令存储开关
27007日历/时间显示:周起始日、FullCalendar 视图模式、时段粒度
281829系统内部:jsgraphics、html2text、长字段上限、上传/POST 总量上限、表 ID 分配区间
28199ImageMagick/缩略图:路径、PDF 处理、缩略图尺寸
28207Ghostscript/PDF 输出:分辨率、位深、兼容级别、压缩
29354打印:lpstat/lpoptions/lp 命令参数、打印机缓存
29955PostgreSQL 全文检索:启用开关、pg_ts_config 语言、headline、tsvector 瘦身

5.3 安装与全局默认(1893 组关键变量)

实测值(SELECT id, beschreibung, norm FROM lmb_umgvar WHERE id IN (...) 照抄):

id描述(原文)实测 norm 值说明/建议
3absolute path of installation/srv/www/htdocs/projects/openlimbas/dependent/出厂默认路径,装机后应改为本机真实 dependent/ 路径
21default path of Backuplocalhost:////srv/www/htdocs/projects/openlimbas/dependent/BACKUP/备份目的地;前缀 localhost:// 为「主机+四斜杠绝对路径」格式
27Base URL of installation(空)留空自动探测;反向代理/HTTPS 场景应显式设置
110custom title %sLimbas-Demo - %s登录页标题模板(3.2 已实测改动生效)
111check for updates (0/1)0更新检查开关,内网建议保持 0
45default layout for new userscomet新用户默认布局
46default count of datasets per page30列表每页条数
47default uloadsize for new users (MB)5每用户默认上传额度(MB),受 PHP 上限约束
49default language for new users1指向 lmb_lang.language_id
72default dateformat (1=german;2=US;3=fra)1德语日期格式 dd.mm.yyyy
73default timezone for new usersEurope/Berlin中国部署建议改 Asia/Shanghai
74default setlocale for new usersde_DE与语言联动
78default numberformat for currency2,',','.'千分位点号、小数逗号(德式)
86default loglevel (0=none;1=simple;2=full)1应用内操作日志级别
134show update page … (background/foreground)foreground更新提示呈现方式

⚠️ 注意:id 3 与 21 出厂值指向 /srv/www/htdocs/projects/openlimbas/(官方构建机路径)。本环境实测装机后 Web 备份功能可用,说明安装向导已按实际路径校正;若手工部署(如本文方案 B)务必核对这两项,否则备份/DMS 落盘失败。

5.4 上传与容量相关(跨层联动)

上传大小受三层共同约束,取最小值生效(实测默认值):

层参数实测默认调整建议
PHPupload_max_filesize2M按业务调大
PHPpost_max_size8M≥ upload 值
UMGVARid 76 max size of upload/post submits (MB)(空=不额外限制)显式设上限更可控
UMGVARid 47 每用户默认上传额度5(MB)按用户配额
用户表lmb_userdb.uploadsize(admin 实测 104857600)100MB按用户覆盖

💡 技术拓展:重名文件处理策略(id 53「handle dublicate files」)可选三档——

取值行为适用
rename(本文实测默认)自动改名保留双方不允许丢文件的台账
overwrite覆盖旧文件以最新版为准的文档位
versioning生成版本链需回溯历史的正式文档

配合 id 64「use md5 for files and dublicates」=1(实测开启)做内容级判重。

5.5 检索与索引(1898 + 2995 组)

  • id 15 files to index(pdf,text,html 或 1=全部)、id 16 大小写敏感、id 28 Detail-Level、id 31 索引最大执行分钟(实测 60)、id 57 忽略短词、id 62 非字母数字占比阈值;
  • id 124 启用 PostgreSQL 原生全文检索替代 Limbas 自研索引(实测 0 关闭)、id 125 pg_ts_config 语言(可 german/german,english/all)、id 126 DMS 用 PG headline、id 127 tsvector 去词位(省空间但失去短语检索)。

💡 技术拓展:全文检索引擎二选一——

方案特点取舍
Limbas 原生索引(默认,id 124=0)跨库类型统一(MySQL/Oracle 也能用),配合 INDIZE 作业中文分词弱,大库慢
PostgreSQL tsvector(id 124=1)PG 原生 GIN 加速、headline 上下文仅限 PG,语言配置需与数据匹配

本环境 PostgreSQL 后端,两者皆可;默认保持原生以兼容 INDIZE 作业链路。

5.6 安全与认证(1900 + 1995 组)

实测关键值:id 115 口令散列算法=1(对应 PHP PASSWORD_DEFAULT,即 bcrypt——库内 lmb_userdb.passwort 实测均为 $2y$10$… 前缀);id 154 会话保存分钟=1440;id 37「save clear password」明文口令存储开关(生产必须关);id 38 允许代理服务器、id 95/96 HTTP 认证方式(default/htaccess、basic/digest)、id 123 数据加密方法、id 129 PGP 文件加密、id 141 超管越权开关。

⚠️ 注意:LMB_ENC_KEY(include_db.lib)+ id 123/129 构成应用层加密链,换密钥等于旧密文不可解,迁移服务器时该文件必须原样带走。

5.7 PHP 运行参数(apache 与 cli 两份)

/etc/php/8.3/apache2/php.ini 实测关键行:

max_execution_time = 30
memory_limit = 128M
post_max_size = 8M
upload_max_filesize = 2M

CLI 形态(php -i 实测,Web 备份/索引作业走 cron.php/cli.php 时生效的是这套):

display_errors => Off => Off
max_execution_time => 0 => 0
memory_limit => -1 => -1
date.timezone => UTC => UTC
session.gc_maxlifetime => 1440 => 1440

差异解读:Web 请求受 30 秒/128M 约束,CLI 作业不限时不限内存(-1/0),因此大表索引、全量备份放 CLI/cron 跑更稳;date.timezone 未显式设置时 CLI 落 UTC,与 UMGVAR id 73(Europe/Berlin)分属两层——前者影响 PHP 函数默认时区,后者影响用户界面显示。

5.8 Apache vhost 与 .htaccess

vhost 实测全文见《Ubuntu 22.04 安装 Limbas 7.1.15 指南》4.7 节,要点:DocumentRoot 只暴露 public/、AllowOverride All 必须开(否则包内 .htaccess 失效、所有页面 404)、独立 limbas_error.log/limbas_access.log。

public/.htaccess 实测全文:

Satisfy any

Require all granted

<IfModule mod_rewrite.c>

    RewriteEngine on
    #RewriteBase /

    RewriteCond %{REQUEST_URI} !(assets|localassets)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]

</IfModule>

<IfModule mod_env.c>
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>

逐条:Satisfy any + Require all granted 放行入口目录;<IfModule mod_rewrite.c> 块内三条 RewriteCond 把「URI 不含 assets/localassets、且不是实体文件/目录」的请求统一经 RewriteRule ^(.*)$ index.php [L,QSA] 重写入 index.php(QSA 保留查询串);<IfModule mod_env.c> 的 SetEnvIf 把 Authorization 头透传给 PHP,是 REST 接口(/admin/jobs 等)认证可用的前提。

六、生产配置模板

适用场景:16GB 内存、NVMe SSD、50 人内网使用、PostgreSQL 同机部署。逐项给出与出厂默认的差异:

; /etc/php/8.3/apache2/php.ini(改后 systemctl reload apache2)
memory_limit = 512M
max_execution_time = 120
post_max_size = 128M
upload_max_filesize = 100M
date.timezone = Asia/Shanghai
-- lmb_umgvar 关键项(SQL 直改或 Web 配置中心等价)
UPDATE lmb_umgvar SET norm='/opt/limbas/openlimbas-7.1.15/dependent/' WHERE id=3;
UPDATE lmb_umgvar SET norm='localhost:////opt/limbas/backup/' WHERE id=21;
UPDATE lmb_umgvar SET norm='http://limbas-server/' WHERE id=27;
UPDATE lmb_umgvar SET norm='Asia/Shanghai' WHERE id=73;
UPDATE lmb_umgvar SET norm='2' WHERE id=72;
UPDATE lmb_umgvar SET norm='100' WHERE id=47;
UPDATE lmb_umgvar SET norm='0' WHERE id=37;

配套动作:备份目录 mkdir -p /opt/limbas/backup && chown www-data:www-data /opt/limbas/backup;include_db.lib 权限 600、属主 www-data;LMB_ENC_KEY 入密钥管理。该模板把上传上限拉到 100M(DMS 场景)、执行时限 120s(大列表导出)、内存 512M(mod_php 并发 10 路 × 50M 峰值余量),日期/时区本地化,明文口令存储关闭。

七、常见问题

Q1: 改了 php.ini 上传限制但网页仍报文件过大? A: 三层取小(5.4):确认改的是 /etc/php/8.3/apache2/php.ini(不是 cli 那份)、已 systemctl reload apache2,并核对 UMGVAR id 76/47 与用户 uploadsize 是否更低。

Q2: 备份/DMS 落盘报路径错误? A: 检查 id 3/id 21 是否仍是出厂值 /srv/www/htdocs/projects/openlimbas/(5.3 ⚠️),以及目标目录是否存在且属主 www-data(实测 Web 备份产物属主即 www-data)。

Q3: 全站 404 或登录 POST 无效? A: 多为 AllowOverride All 未生效导致 .htaccess 被忽略:apache2ctl -M | grep rewrite 确认 rewrite_module 已加载,vhost <Directory> 段含 AllowOverride All,然后 systemctl reload apache2。

Q4: REST 接口收不到 Authorization 头? A: .htaccess 的 SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 行必须存在(5.8 实测),缺失时 PHP 侧 $_SERVER['HTTP_AUTHORIZATION'] 为空。

Q5: 中文界面日期显示成 dd.mm.yyyy? A: 该格式来自 id 72(1=german)与 id 78 德式数字格式,属新用户默认值;已存在用户按各自偏好存储,改 UMGVAR 后需以新账号或重置用户偏好验证。

八、参考链接

Limbas 7.1.15 配置参数详解 - Quzuo