在 Windows 10 下设置 Apache 可移植 VirtualDocumentRoot

在 Windows 10 下设置 Apache 可移植 VirtualDocumentRoot

XAMPP我在中有以下代码httpd-vhosts.conf

<Directory "/dev/www/">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      # Require all granted
      Require local
      Require ip 192.168.35
</Directory>

<VirtualHost *:80>
       DocumentRoot "/dev/xampp/htdocs"
       ServerName localhost
</VirtualHost>

<VirtualHost *:80>
       ServerAlias *.192.168.35.2.xip.io
       VirtualDocumentRoot "d:/dev/www/vhosts/%-7"
                          # ^ this works!
</VirtualHost>

这很好用。请注意,DocumentRoot第一个虚拟主机中的缺少驱动器号,而VirtualDocumentRoot第二个虚拟主机中的却有一个。

如果我尝试从第二个虚拟主机中删除驱动器号,apache 将无法启动。如下所示:

<VirtualHost *:80>
       ServerAlias *.192.168.35.2.xip.io
       VirtualDocumentRoot "/dev/www/vhosts/%-7"
                          # ^ this doesn't work!
</VirtualHost>

VirtualDocumentRoot有没有办法像常规一样使用没有驱动器号的路径DocumentRoot?更好的是,是否有相对路径,如果可以,这些路径相对于什么?这才是XAMPP真正的便携性,因为可以在 USB 记忆棒上使用。

答案1

当前版本的 Apacheformat string must be an absolute path, or 'none'在启动失败时会明确发出该消息。因此很可能可以推断,在 Windows 上/dev/www/vhosts/%-7不能使用像 这样的路径(即没有驱动器号的路径) (因为等是磁盘的根目录,而不是)。VirtualDocumentRootc:\d:\/

假设 eg/dev/xampp/htdocs可能是您的DocumentRoothttpd.conf您可能(假设地)能够将其更新为类似于/允许从 USB 驱动器使用 Apache 的内容,但我不相信这可以解决的问题VirtualDocumentRoot

相关内容