GoDaddy 上从 Apache 2.2 到 2.4 的最新更新导致我的 Perl 脚本出现故障。这是一个共享主机环境。我一直在与 GoDaddy 技术支持人员交谈无济于事,并查看了我在 Apache 基金会、谷歌搜索和这里可以找到的所有帮助,但都一无所获。我有 2 个网站,一个是子域。如果请求的 URL 在子域中,我的 Perl 脚本会查找在 2.2 服务器中设置的环境变量 (SUBDOMAIN_DOCUMENT_ROOT),否则不设置。在任何一种情况下,DOCUMENT_ROOT 都设置为主域的顶部。一旦脚本确定了它的上下文,它就会寻找合适的数据文件。
Apache 2.4 更新后,SUBDOMAIN_DOCUMENT_ROOT 变量消失了。一个新变量 CONTEXT_DOCUMENT_ROOT 现在位于环境中。但是,无论调用的脚本是在主域还是子域中,它总是指向主域的顶部。除了以下内容,我几乎没有发现关于 CONTEXT_DOCUMENT_ROOT 的文档:
修订 1132494
作者:sf
日期:Sun Jun 5 21:33:12 2011 UTC(2 年零 1 个月前)
更改路径:11
日志消息:
- 引入上下文前缀(即 URL 前缀)和上下文文档根(这是此 URL 前缀映射到的文件系统目录)。文档根的这种概括使脚本更容易创建自引用 URL 并找到它们的文件。
- 在 mod_rewrite 和 ap_expr 中将 CONTEXT_DOCUMENT_ROOT 和 CONTEXT_PREFIX 公开为 envvars。
- 使 mod_alias 和 mod_userdir 设置上下文信息。
- 允许基于每个请求覆盖文档根目录。这允许大量虚拟主机模块正确设置 DOCUMENT_ROOT。
- 使 mod_vhost_alias 设置每个请求的文档根
在我看来,这意味着如果请求的 URL 在子域中,则 CONTEXT_DOCUMENT_ROOT 应该指向子域树的顶部。如果是这样,GoDaddy 安装已损坏。他们说不是。谁能给我指出 CONTEXT_DOCUMENT_ROOT 的权威文档,最好举一两个例子?