Admidio 5.0.17 配置参数详解
Admidio 5.0.17 配置参数详解:基于 Ubuntu 22.04.5 LTS 实测,逐项解析 adm_my_files/config.php 字段、adm_my_files 目录结构、202 项组织偏好(邮件/登录/主题等)、PHP 与 Nginx 配合调优与常见配置故障。
Admidio 5.0.17 配置参数详解
本文是 admidio 专栏的配置篇。文中字段、取值与回显均于 2026-10-28 在 Ubuntu 22.04.5 LTS + Admidio 5.0.17(Nginx 1.18.0 + PHP 8.2.35 + MariaDB 10.6.23)环境实测取得;安装过程见《Admidio 5.0.17 LEMP 安装部署指南》。
一、配置体系总览
1.1 三层配置结构
Admidio 5.0.17 的配置分布在三层,理解分层是改配置不踩坑的前提:
| 层 | 载体 | 生效方式 | 典型内容 |
|---|---|---|---|
| 站点引导层 | adm_my_files/config.php | 每次 PHP 请求读取 | 数据库连接、站点地址、时区、表前缀 |
| 组织偏好层 | 数据库表 adm_preferences | 后台修改即时生效(存库) | 202 项业务参数(实测计数) |
| 运行平台层 | php.ini / Nginx | 改后 reload | 上传上限、时区、进程数、超时 |
1.2 adm_my_files 目录结构
adm_my_files 是唯一的运行时可写目录(实测目录清单):
adm_my_files/
├── config.php # 安装向导生成的站点配置(实测 1158 字节)
├── config_example.php # 示例模板,仅供对照
├── .htaccess # Apache 环境下的访问保护
├── index.html # 空页防目录列举
├── logs/ # 运行日志(admidio-YYYY-MM-DD.log)
├── temp/ # 上传与处理临时文件
├── mail_templates/ # 系统邮件 HTML 模板
├── ecard_templates/ # 电子贺卡模板
└── templates/ # 页面局部模板
运维上需要重点保护该目录:属主必须为 Web 运行用户(实测 www-data),且整目录纳入备份(见《Admidio 5.0.17 常用运维命令详解》)。
二、config.php 字段逐项解析
2.1 实测完整文件内容
安装向导生成的 config.php 实测原文(密码为本系列演示环境约定值):
<?php
// Select your database system for example 'mysql' or 'pgsql'
$gDbType = 'mysql';
// Access to the database of the SQL-Server
$g_adm_srv = 'localhost'; // Host
$g_adm_port = 3306; // Port
$g_adm_db = 'admidio'; // Database-Name
$g_adm_usr = 'admidio'; // Username
$g_adm_pw = 'Admidio#2026'; // Password
// Table prefix for Admidio-Tables in database
$g_tbl_praefix = 'adm';
// URL to this Admidio installation
$g_root_path = 'http://localhost';
// The name of the timezone in which your organization is located.
$gTimezone = 'Asia/Shanghai';
2.2 字段含义与修改要点
| 字段 | 含义 | 修改要点 |
|---|---|---|
$gDbType | 数据库引擎类型 | 可选 mysql 或 pgsql;改引擎需连带改连接五件套 |
$g_adm_srv | 数据库主机 | 远程库填主机名或 IP,建议改用内网地址 |
$g_adm_port | 数据库端口 | MariaDB/MySQL 默认 3306,PostgreSQL 默认 5432 |
$g_adm_db / $g_adm_usr / $g_adm_pw | 库名/账号/密码 | 改密码时须与数据库侧同步,否则全站 500 |
$g_tbl_praefix | 表前缀 | 默认 adm;安装后不可改,否则系统找不到表 |
$g_root_path | 站点对外地址 | 换域名/上 HTTPS 时必须改,错误值会导致跳转与静态资源 404 |
$gTimezone | 组织时区 | PHP 时区字符串;影响界面时间展示,与 php.ini 的 date.timezone 相互独立 |
实测修改 $g_root_path 后立即生效,无需重启服务——该文件由每次请求引导加载。
2.3 修改口令后的联动检查清单
- 数据库侧执行
ALTER USER 'admidio'@'localhost' IDENTIFIED BY '<新密码>'; - 编辑 config.php 的
$g_adm_pw; - 刷新首页验证:命令
curl -s -o /dev/null -w '%{http_code}\n' http://localhost/,预期输出303(未登录跳转 overview 属正常,出现 500 即密码不同步)。
三、组织偏好(adm_preferences)详解
3.1 存储机制与修改入口
组织偏好共 202 项(实测 SELECT COUNT(*) FROM adm_preferences;),以 prf_name/prf_value 键值对存储,全部通过后台"系统 → 偏好设置"界面修改后写库,不落 config.php。直接改库虽可行(UPDATE adm_preferences SET prf_value=... WHERE prf_name=...;),但会绕过参数校验,仅建议在界面无法触达时使用。
3.2 关键偏好项实测值
安装向导默认生成的部分核心偏好(实测查询结果):
| prf_name | 默认值 | 含义与调整建议 |
|---|---|---|
theme | simple | 主题名,对应 themes/simple 目录;当前源码包仅内置该主题 |
logout_minutes | 20 | 会话空闲登出分钟数,安全要求高可调小 |
enable_auto_login | 1 | 自动登录开关;公共终端建议改 0 |
enable_rss | 1 | RSS 输出开关 |
mail_send_method | phpmail | 发信方式;生产建议改 SMTP |
mail_smtp_host | (空) | SMTP 主机,配合 mail_send_method=SMTP 使用 |
mail_smtp_port | 587 | SMTP 端口,STARTTLS 常用 |
mail_smtp_auth | 1 | SMTP 认证开关 |
max_email_attachment_size | 1 | 群发邮件附件上限(MB),受 PHP 上传限制约束 |
registration_mode | — | 注册模式,控制新成员自助注册与审核策略 |
3.3 邮件发信配置建议
默认 mail_send_method=phpmail 依赖本机 sendmail,生产环境几乎不可用。切换 SMTP 的路径:后台偏好设置中把发信方式改为 SMTP,填入 mail_smtp_host、端口(默认已 587)、账号密码。改完用"消息"模块给单个管理员发一封测试邮件验证。注意附件上限还要过 PHP 层(见 4.1 节),两层取小值。
四、PHP 与 Nginx 配合调优
4.1 php.ini 必调项
实测 Ubuntu 22.04 的 PHP 8.2 默认值(php8.2 -i 查询):
| 参数 | 默认值 | 建议值 | 影响 |
|---|---|---|---|
upload_max_filesize | 2M | 20M | 相册/文档上传单文件上限 |
post_max_size | 8M | 24M | 必须大于 upload_max_filesize |
memory_limit | 128M(FPM) | 256M | Excel/PDF 导出大名单时吃内存 |
date.timezone | UTC | Asia/Shanghai | 日志时间戳与邮件排队使用运行时时区 |
实测踩坑记录:未设 date.timezone 时,日志文件 admidio-2026-10-28.log 内时间戳为 UTC(04:03:42 对应北京时间 12:03),排障时容易误判事件顺序。修改 /etc/php/8.2/fpm/php.ini 后需 sudo systemctl reload php8.2-fpm 生效。
4.2 Nginx 关键指令
实测站点配置(见 B1 篇 4.1 节)中与配置直接相关的三项:
client_max_body_size 20m;——Nginx 侧请求体上限,必须与 PHP 上传限制同步放大,否则大文件上传报 413;fastcgi_pass unix:/run/php/php8.2-fpm.sock;——套接字版本必须与实际 FPM 版本一致,多版本 PHP 并存时最易错接;try_files $uri $uri/ /index.php?$query_string;——保证 Admidio 模块路由正常,缺失会导致除首页外全部 404。
4.3 PHP-FPM 进程调优
实测默认进程模型为 3 个工作进程(pgrep -c php-fpm8.2),小规模协会(数百成员)足够;成员过千或并发上传场景建议在 /etc/php/8.2/fpm/pool.d/www.conf 调整 pm.max_children,改后 sudo systemctl reload php8.2-fpm 生效。
五、主题与界面配置
5.1 主题目录与切换
实测源码包仅内置 themes/simple 一个主题,偏好项 theme=simple 与之一一对应。自定义主题的做法:复制 themes/simple 为 themes/<新名>,改模板与样式后将偏好 theme 切换为新目录名,刷新页面生效。
5.2 首页与导航
登录后访问"系统 → 偏好设置"可调整首页展示模块与菜单项;模块清单(公告、活动、相册、文档文件、消息、房间、物品借用等)由数据库 adm_components 驱动,实测其中每项对应 modules/ 目录下同名模块文件,无需手工改文件即可启停。
六、常见配置故障排查
故障一:改了 config.php 后全站 500。
排查:90% 是数据库五件套与实际库不匹配。核对 $g_adm_pw 与数据库账号密码、$g_adm_srv 可达性;实测日志 adm_my_files/logs/admidio-*.log 会同步记录 PDO 连接异常。
故障二:换域名后页面跳回旧地址或静态资源 404。
原因:$g_root_path 未随域名更新。实测该值直接拼在所有资源与跳转 URL 前,改为新地址后立即恢复。
故障三:上传附件报错或 413。
原因链:Nginx client_max_body_size < PHP post_max_size < 业务需求,三者需同步放大并 reload 两层服务。
故障四:日志时间与本地时间差 8 小时。
原因:php.ini date.timezone 默认 UTC。设为 Asia/Shanghai 并 reload php8.2-fpm,此后新日志即本地时间。
配置层理顺之后,系统的日常备份、版本升级与故障处置进入运维节奏,详见《Admidio 5.0.17 常用运维命令详解》;如需回顾部署过程,见《Admidio 5.0.17 LEMP 安装部署指南》。