为什么我们需要以下虚拟主机的配置文件中的部分?

为什么我们需要以下虚拟主机的配置文件中的部分?

这里是解释如何在 Ubuntu Server 上安装 MediaWiki 的文章。

以下是他们告诉我们如何配置虚拟主机:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www//mediawiki/
    ServerName wiki.your-domain.com

    <Directory /var/www/html/mediawiki/>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /var/log/apache2/mediawiki_error
    CustomLog /var/log/apache2/mediawiki_access common
</VirtualHost>

我不明白这部分:

<Directory /var/www/html/mediawiki/>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

我的 wiki 的位置/var/www/mediawiki/如您在指令中看到的一样DocumentRoot。 中没有mediawiki文件夹/var/www/html/。 那里唯一的东西是index.html文件。 那么,我们为什么需要该部分呢? 我在这里遗漏了什么?

另外,为什么我们要使用//in DocumentRoot /var/www//mediawiki/?根据 Apache 官方文档我们这里不需要//,但如果我运行,apachectl configtest我就会得到Syntax Ok并且一切都会正常工作。

答案1

我的 wiki 的位置/var/www/mediawiki/如您在指令中看到的一样DocumentRoot。中
没有mediawiki文件夹/var/www/html/。 那里唯一的东西是index.html文件。
那么,我们为什么需要该部分呢? 我在这里遗漏了什么?

/var/www 实际上不需要它(嗯,它是需要的,但是你的标准 apache2.conf 已经有它了)。

此配置的重点是告诉 Apache允许访问到该特定位置。默认情况下,除非配置另有说明,否则拒绝访问任何文件。在 Apache 2.4 中,这通常使用 来完成Require,而在 Apache 2.2 中,综合规则(和基于 IP 的规则)是使用 来完成的Allow

本节完成的另一件事是使用 AllowOverride 选项启用 .htaccess 文件处理。

您的标准 apache2.conf 已经包含一个 <Directory> 部分,该部分授予每个人对 /var/www 的访问权限(并启用 .htaccess),因此无需在每个虚拟主机上重复该操作。但如果您的 webapp 存储在别的地方(例如 /home 或 /usr/share)那么您将需要一个 <Directory> 部分。

另外,为什么我们使用//in DocumentRoot /var/www//mediawiki/

因为作者/在编辑路径时忘记删除多余的部分。正如 <Directory> 部分所示,它最初是“/var/www/html/mediawiki”,但后来他们改变了主意。

在大多数情况下(除了少数例外),路径中的多个连续斜杠与一个斜杠含义相同/

相关内容