PHP 是否可以读取/解析当前虚拟主机的 Apache VirtualHost 配置块,特别是检索 ErrorLog 和 CustomLog 设置?
需要明确的是,我们不需要 PHP 错误日志路径,这很容易检索。
phpinfo
我在or_SERVER/getenv()
或 PHP Apache 函数 ( apache_module()
, apache_note()
, apache_getenv()
)中找不到任何方法
该代码库用于多个服务器上的多个虚拟主机,因此我们无法在 PHP(.htaccess
SetEnv
或某些 ini/csv/whatever 文件等)中对 Apache 访问和错误日志路径进行硬编码,因为它可能并不总是与什么匹配已设置<VirtualHost>
- Operations 中的某个人可能会更新 VirtualHost,但开发人员可能不会更新代码或代码用于查找相同路径的任何内容。我们不能在 CustomLog 行之下或之上有一个具有相同值的 SetEnv,因为仍然有可能在没有另一个的情况下更新一个(人为错误等)。
我最大的希望是,apache_getenv()
但我已经尝试过apache_getenv('CustomLog')
,但它没有返回任何东西。
可以运行一系列system()/exec()
调用来运行 cli 函数来找到它们,但并不理想。
可能与当前调用的ServerName
虚拟主机不匹配,因为ServerAlias
可能有一个包含正则表达式的不同虚拟主机,因此一旦找到 Apache conf 的路径,手动 grepping 文件并不理想/可靠。
Apache 2.2.16 (Unix) PHP 5.3.3 CentOS release 5.5 (Final)
请告诉我我错过了一些明显的东西;)