在谷歌和这里做了很多搜索之后,我一直无法找到解决我的问题的方法。
我使用这篇文章来学习如何在我的虚拟主机中创建变量。它需要安装 mod_define。
我的团队中有许多开发人员正在从事同一个项目,并且都需要将相同的设置应用于他们的虚拟主机。修改大家的文件是相当痛苦的。所以我创建了一个名为redirects.conf的文件并将其包含在每个人的虚拟主机中。这个文件不需要知道每个虚拟主机中定义的 DEV_DIR 变量,所以它工作正常。
示例开发人员虚拟主机:
<VirtualHost devenv:80>
Define DEV_DIR developer-name
DocumentRoot /export/www/development/${DEV_DIR}/myproject/
ServerName pavan-myproject.dev.mydomain.co.nz
Include /etc/httpd/conf/common/aliases.conf
Include /etc/httpd/conf/common/rewrites.conf
</VirtualHost>
我已经包含(或尝试)的aliases.conf文件需要了解并评估 DEV_DIR 变量的值。
别名文件包含获取:
Alias /secure/assests /export/www/development/${DEV_DIR}/myproject/assets/
Alias /secure/shareddata /export/script/data/shareddata
包含此文件后,当我进行配置测试时,我收到此错误:
[error] mod_define: Variable 'DEV_DIR' not defined: file /etc/httpd/conf/common/aliases.conf, line 1
但是,当我不包含该文件并将别名直接放入虚拟主机时,它会很好地评估 DEV_DIR 变量(我尝试使用两种表示法:${DEV_DIR} 以及 $DEV_DIR 并且两者都有效)。这样做仍然需要更改每个人的虚拟主机。我想使用单个文件来管理它。
我想用 VirtualHost 范围定义变量,并在包含的文件中使用它们。
如何获取 aliases.conf 或任何其他包含文件来评估包含它的 vhost 中定义的变量?
我可以使用什么其他解决方案来实现这样的功能?
如果已在其他地方提出并回答了此问题,您能否帮助我或将我链接到解决方案。