我不确定为什么重新启动 apache 时会出现以下错误:
Invalid command 'VirtualDocumentRoot', perhaps misspelled or defined by a module not included in the server configuration Action 'start' failed.
它所指的片段是这样的:
<VirtualHost *:80>
ServerAdmin [email protected]
VirtualDocumentRoot /local/www/staging/%1
ServerAlias *.staging.mydomain.com
</VirtualHost>
我以为是拼写错误,但其实它是直接从我的另一台服务器复制过来的。它在那里运行正常。有什么想法吗?
答案1
文档建议该指令由模块 vhost_alias 提供。您应该确保您拥有
LoadModule vhost_alias_module modules/mod_vhost_alias.so
服务器配置文件中的配置指令不起作用。
答案2
我遇到了和 Andy 一样的错误,但在我的例子中,情况有点不同。从 MadHatter 的回答中,我可以找出问题所在。
我的 apache2 服务器有点不同。它有 2 个目录,即/etc/apache2/mods-available
& /etc/apache2/mods-enabled
。在目录中mods-available
,您将看到可加载模块配置文件的列表,在本例中,我看到一个名为的文件,vhost_alias.load
其中包含以下配置:
LoadModule vhost_alias_module /usr/lib/apache2/modules/mod_vhost_alias.so
因此,我使用以下命令来启用此配置:
sudo a2enmod vhost_alias