我通过本地计算机上的 VirtualHost 托管测试站点。我有时需要在更改之前测试我针对网站版本所做的更改,以查看行为上的差异。起初我认为这就像配置 2 个 VirtualHost 块一样简单,一个将 DocumentRoot 设置为 /mysite_new,另一个将 DocumentRoot 设置为 /mysite_original ... 并且在大多数情况下,这是可行的。我将每个服务器名称设置为不同,并将我的主机文件设置为指向每个主机名的相同 IP 地址。
我在 VirtualHost 块中的块出现了问题:
在第一个:
<Perl>
use '/mysite_new/lib';
</Perl>
在第二:
<Perl>
use '/mysite_original/lib';
</Perl>
起初我认为这些将是任何一个虚拟主机所独有的,所以他们会在库中使用他们自己版本的 perl 模块,但在调查了 mod_perl 的工作原理之后,似乎这些语句只是在读取配置时执行在启动时,后者将简单地取代前者(大概是因为使用 unshifts 到 @INC 数组上,因此在 /mysite_new/lib 之前匹配那些模块 /mysite_orig/lib?)。
那么我的问题是,有没有办法根据正在服务的虚拟主机来使用不同的库位置?