我用过mod_define在我的 Windows 配置中,我已经为 Apache2 使用了很长时间。现在,我想转到 Vagrant/Debian。但是,我在安装了 Apache 2.2.22 的虚拟环境中重现配置时遇到了困难。
我遇到的第一个问题是无法编译文件.so
:它一直告诉我未安装必要的库,并拒绝安装它们。我不记得是怎么做到的,但我最终设法编译了。之后,我尝试使用它,但它不起作用,所以我放弃了这个想法大约一个月。
现在,我回来尝试让它工作。
mod_define
已安装,并包含在的输出中apache2 -M
,如下所示:
define_module (shared)
在我的/etc/apache2/mods-available/define.load
我有以下行:
LoadModule define_module /usr/lib/apache2/modules/mod_define.so
因此,它似乎应该可以工作。但是,当我尝试使用以下命令启动服务器时,apache2ctl start
出现以下信息:
apache2: Syntax error on line 47 of /etc/apache2/apache2.conf: Syntax error on line 3 of /etc/apache2/conf.d/gurudev.conf: Include directory '/etc/apache2/$ABC' not found
Action 'start' failed.
The Apache error log may have more information.
/var/log/apache2/error.log
不包含任何新条目。我的/etc/apache2/conf.d/gurudev.conf
文件如下所示:
Define ABC "/var/www/.config/apache"
Include $ABC/*.conf
看起来$ABC
并没有扩展到/var/www/.config/apache
。
有人遇到过这种情况吗?或者我的mod_define.so
坏了?也许有人可以把他们的发给我?
答案1
这似乎只是apache v2.2 指令的一个限制。您可以在许多指令中使用定义的变量,但不能在 中mod_define
使用。Include
Include
仅供参考,它适用于 apache v2.4 的本机Define
指令