我想了解这个 Exim 配置目录发生了什么。
在 /etc/exim4 中,有:
* exim4.conf.template
* update-exim4.conf.conf
* conf.d
conf.d 中有一堆目录和文件,每个目录和文件里面都有一堆 if 语句我发现这确实不同。
例如:
maildir_home:
debug_print = "T: maildir_home for $local_part@$domain"
driver = appendfile
.ifdef MAILDIR_HOME_MAILDIR_LOCATION
directory = MAILDIR_HOME_MAILDIR_LOCATION
.else
directory = $home/Maildir
.endif
.ifdef MAILDIR_HOME_CREATE_DIRECTORY
create_directory
.endif
.ifdef MAILDIR_HOME_CREATE_FILE
我的问题是,
-CAPS 变量在哪里定义?
- 我怎样才能改变它们?
- 为什么这些配置文件中有这么多的 if 语句?
答案1
这是 Debian/Ubuntu 管理 Exim4 的方式。您需要限制自己使用该dpkg-reconfigure exim4-config
实用程序及其配置文件update-exim4.conf.conf
来管理它,或者干脆将其全部删除并自行管理。请查看:
http://pkg-exim4.alioth.debian.org/README/README.Debian.html#completely-different-configuration
答案2
以下是了解 Debian 的 exim 配置的简单指南:
conf.d
包含配置片段,由配置区域分隔。大写的变量通常在第一部分(如果我没记错的话,称为 base)中定义。- 这
exim4.conf.template
是通过在安装时连接所有代码片段生成的,因此基本配置是相同的。 - 守护进程使用的配置文件是根据上述模板之一在不同的目录中创建的。
- 每次使用时,
update-exim4.conf
它都会根据包配置询问拆分配置时您的回答生成一个新的配置文件。
如果使用拆分配置,则必须使用文件来conf.d
管理 exim,否则使用exim4.conf.template
。
我建议你使用conf.d
方案,习惯之后管理和添加/删除内容会更容易。读取所有目录中的所有文件并将其与正在运行的配置文件进行比较(/var/lib/exim4/config.autogenerated
但注释是条纹状的,因此请重新运行update-exim4.conf --keepcomments
,或者你也可以使用它exim -bP
来查看正在运行的配置),你会很容易地得到它。
大多数时候您不需要任何特殊配置,因此只需使用dpkg-reconfigure
exim4-config`并回答问题。
答案3
这些并不是真正的 exim 配置文件,而是用于生成实际 exim 配置文件的 debian 配置系统的一部分。