apache virtualhost(windows)不改变DocumentRoot

Posted

技术标签:

【中文标题】apache virtualhost(windows)不改变DocumentRoot【英文标题】:apache virtualhost (windows) not changing DocumentRoot 【发布时间】:2021-01-30 17:00:57 【问题描述】:

在 apache (windows 10) 上设置 vHost 时,一切正常 - 而不是 DocumentRoot。 它仍然是 htdocs 目录,而不是我在 httpd-vhosts.conf 中设置的目录:

Listen 80
<VirtualHost *:80>
    ServerAdmin your@email.com
    DocumentRoot "C:\Test"
    ServerName www.test.test
    <Directory "C:\Test">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

我还将域添加到 C:\Windows\System32\drivers\etc> 的 hosts 文件夹中。所以这部分工作正常:

# localhost name resolution is handled within DNS itself.
    127.0.0.1       localhost
#   ::1             localhost
    127.0.0.1       www.test.test

就在更改 httpd.conf 文件中的 documentRoot 时,如:

#DocumentRoot "$SRVROOT/htdocs"
DocumentRoot "C:\Test"
<Directory "C:\Test">
...

它似乎工作。但这不是一个合适的解决方案...

【问题讨论】:

我觉得不错。理论上路径应该使用正斜杠,但实际上反斜杠可以正常工作。你使用的是 Apache/2.4,实际加载 httpd-vhosts.conf 并在进行更改后重新启动服务? @ÁlvaroGonzález “实际加载 httpf-vhosts.conf”是什么意思?之后我重新启动了一切。连电脑... 【参考方案1】:

Apache 不会自动加载它在conf 目录下找到的每个文件。您需要使用Include 指令显式加载您需要的内容,如:

Include conf/extra/httpd-vhosts.conf

也可以加载完整的目录,例如:

Include "C:/Data/vhosts/*.conf"

您可以使用此命令验证正在加载哪些文件:

httpd -t -D DUMP_INCLUDES

...以及正在定义的虚拟主机:

httpd -t -D DUMP_VHOSTS

【讨论】:

谢谢!我必须在什么文件中使用这些命令?在虚拟主机中? 来自command prompt 或 PowerShell。

以上是关于apache virtualhost(windows)不改变DocumentRoot的主要内容,如果未能解决你的问题,请参考以下文章

VirtualHost 阻止 XAMPP 声明启动 Apache

添加Apache VirtualHost,localhost的DocumentRoot更改为VirtualHost的DocumentRoot

Apache本地VirtualHost重定向到其他VirtualHost

带有 VirtualHost 代理的 Apache 2.4 缓存

为啥 Apache 忽略我的 VirtualHost 声明?

覆盖默认 Apache <VirtualHost> 块中的单个设置