目标:使用Apache / mod_auth_kerb使用自定义的krb5.conf文件,而不是系统标准/etc/krb5.conf 。
问题:我有一个强大的治理环境,我们的应用程序所有者能够在其分配的目录中configurationapache实例,但基线configuration(OS和Apache核心)由一个单独的组维护。 因此,我对核心configuration(如/etc/krb5.conf进行的任何更改都意味着要将更改复制到数千个服务器(风险+)或为此服务器(risk +,$ +)编写自定义系统configuration的脚本。
成功模式:为了调用kinit来testing或者ktutil在这个环境中生成供Apache使用的keytab文件,重载KRB5_CONFIG环境variables(在StackOverflow中讨论:通过kinit定制一个krb5.conf文件 )
问题:无论如何要为Apache指定KRB5_CONFIG环境variables或强制mod_auth_kerb使用其他configuration?
失败的尝试:我已经尝试在apachectl重新启动时运行相同的env命令。 Apache指令SetEnv被忽视,因为它适用于基于用户请求的脚本执行,而不是Apache的“后台”function。
在大多数系统上,还有一个/etc/init.d/httpd ,用来执行apache服务器的初始启动。 我认为你唯一的解决scheme是在该脚本中设置一个环境variables,并使用类似的东西
/sbin/service httpd restart
用新的环境variables重新启动Apache。 您必须修改以某种方式启动httpd的进程的环境。
在Red Hat系统上,我认为/etc/sysconfig/httpd是env vars更好的地方。