【问题标题】:Apache Document Root adds leading default pathApache Document Root 添加前导默认路径
【发布时间】:2014-06-18 21:23:43
【问题描述】:

对于了解 apache 的人来说,这应该是一个非常简单的问题。

我有一台 Ubuntu 计算机用作我的服务器。我之前曾多次使用 apache,但从未遇到过这个问题。

site-enabled 文件夹中我的 owncloud.conf 文件如下所示:

1 <VirtualHost *:80>¬ 2 ServerName owncloud¬ 3 DocumentRoot "~/mybook/ownCloud"¬ 4 <Directory ~/mybook/ownCloud/>¬ 5 Options None¬ 6 Order deny,allow¬ 7 Allow from all¬ 8 </Directory>¬ 9 </VirtualHost>

但在启用站点并重新启动 apache 后,我收到此错误:

AH00112: Warning: DocumentRoot [/etc/apache2/~/mybook/ownCloud] does not exist

我一直在寻找,但我似乎找不到设置“/etc/apache2/”应该引导站点配置文件的所有设置文档根目录的默认路径。

有谁知道如何删除这个默认设置?

【问题讨论】:

  • 这是 Macbook 还是 Mac OS

标签: apache ubuntu


【解决方案1】:

忘记我对 Mac 的评论,您上面的内容将不起作用。如果您在 Ubuntu 上安装了 Apache 并接受默认值,则 docroot 为 /var/www,我假设您希望 /mybook/ownCloud 映射到 docroot。这就是您应该这样做的方式,因为 httpd 将以对真实 docroot 的组权限运行。这可以使用别名来完成,如下所示。查看底部,但还要注意,在映射任何内容之前,我一开始就指定了正确的默认 docroot。您可以更改 docroot,但您必须确保对新目录结构的权限设置正确。

我将您的 /mybook/ownCloud/ 别名为 ownCloud。另外,为了清楚起见,我从下面启用站点的代码中删除了其他指令。

顺便说一句,我个人从来没有像你上面提到的那样在 Apache conf 文件中使用波浪线,它在启动过程中可能会造成混淆。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

  Alias /owncloud/ "/mybook/ownCloud"
    <Directory "/mybook/ownCloud">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

编辑: 还有其他配置 VHost 的方法,但这基本上是如何完成的。您不再在 httpd.conf 中设置服务器范围的 docroot 声明。 /etc/apache2/ 路径是服务器主页,如果您的站点中没有 docroot 声明,启用它可能在 httpd 启动时默认为服务器主页。

【讨论】:

  • 非常感谢,但我是如何做到的,我一直都是这样做的。我觉得这是一种更快速的解决方法,因为我不希望我的 apache2 文件夹中有很多链接。我不记得我安装它时做了什么,但我很可能将默认路径设置为 /etc/apache2/,但肯定有一种方法可以编辑和删除它。这基本上就是我想知道的。不过谢谢你的回答!
  • 不客气,但这是您想要为 Apache 配置 VHost 的方式。这不是一种解决方法。过去,您会在 httpd.conf 中声明 docroot 以及其他服务器变量。但是当 2.2 出来时,配置就文件布局发生了变化。还有其他配置方法。
  • 啊,好吧,几年前我曾经和这个一起工作过。从那以后肯定变了。我还发现它不喜欢波浪号。每当我使用 ~ 时,它都会添加前导路径,因此我必须输入文件夹的完整路径。非常感谢你,我会用你的方式。干杯
  • 很高兴它对你有用。阅读更多关于你之前的经历发生了哪些变化。当我进入 2.2 时,我也遇到了减速带。它破坏了我所有用于 SVN 配置的 WebDav。花了大约 1 周的时间让这一切重新开始。 httpd.apache.org/docs/current
猜你喜欢
  • 1970-01-01
  • 2013-06-06
  • 2019-06-30
  • 1970-01-01
  • 2021-12-22
  • 2015-11-11
  • 2011-07-16
  • 2018-08-15
  • 2013-03-28
相关资源
最近更新 更多