【问题标题】:Wildcard vhost with modperl带有 modperl 的通配符虚拟主机
【发布时间】:2016-11-14 01:45:27
【问题描述】:

我有一个服务器,我想在其上运行多个通配符虚拟主机,以及它们自己的 modperl 环境。

每个虚拟主机都需要运行自己的启动脚本来定义自定义包含路径。

在正常的 vhost 配置中,我可以执行以下操作...

<VirtualHost *:80>
    ServerName web1.myserver.com

    Define ApplicationRoot /websites/web1

    DocumentRoot ${ApplicationRoot}

    PerlSetEnv PERL_DOC_ROOT ${ApplicationRoot}
    PerlOptions +Parent
    PerlPostConfigRequire /websites/lib/startup.pl
...

然后我的 startup.pl 脚本可以使用 PERL_DOC_ROOT 环境变量来动态配置自定义库路径。

这适用于多个虚拟主机部分。它们每个都定义了自己的@INC,并且一切都正确解析。

有什么方法可以将其转换为通配符虚拟主机配置。我希望用户能够访问 *.myserver.com,它将使用主机名来确定要使用的文档根目录,并将运行 startup.pl 以基于此文件夹定义 lib 路径。

我知道我可以使用这样的东西...

VirtualDocumentRoot /websites/%1/

动态设置文档根目录,但如果我尝试在任何其他声明中使用 %1,则无法理解。此外,startup.pl 需要在首次请求站点时运行,而不是在首次加载配置文件时运行。

这可能吗?或者我是否需要在每次添加新的虚拟目录时以某种方式动态重写配置文件。

【问题讨论】:

    标签: apache2 vhosts mod-perl


    【解决方案1】:

    我意识到我过于复杂了。我不需要使用通配符虚拟主机。由于我将使用 Jenkins 创建 vhosts 目录,因此我还可以让它动态创建配置文件以进行匹配。

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      相关资源
      最近更新 更多