【问题标题】:Why do I get an error after changing the root directory of my XAMPP Apache server?为什么更改 XAMPP Apache 服务器的根目录后会出现错误?
【发布时间】:2021-10-13 00:32:48
【问题描述】:

上下文

我正在尝试更改我的 XAMPP Apache 设置的根目录。目前,根目录为/htdocs。我的项目文件夹名为“Real Website”,所以我希望根目录为/htdocs/Real Website,这样我就可以像在实时网站上一样使用根目录引用文件(我必须将“Real Website”添加到根引用[/Real Website/] 在引用本地主机上的特定文件之前,而不是像我在实时服务器上那样使用“/”)。

为此,我进入了 httpd.conf 文件 (XAMPP/xamppfiles/etc/httpd.conf)。我从

编辑了以下几行
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
<Directory "/Applications/XAMPP/xamppfiles/htdocs">

DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/Real Website"
<Directory "/Applications/XAMPP/xamppfiles/htdocs/Real Website">

我还编辑了第一个目录标签,如下所示:

<Directory />
    AllowOverride all 
    Require all granted
</Directory>

在进行这些更改后进入“真实网站”文件夹中的文件后,我在 JavaScript 中添加了 window.location.href = "/" 行,以查看它是否会显示“真实网站”文件夹。我收到了这个错误:

Access forbidden!
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.

If you think this is a server error, please contact the webmaster.

Error 403
localhost
Apache/2.4.46 (Unix) OpenSSL/1.1.1h PHP/7.4.12 mod_perl/2.0.11 Perl/v5.32.0

URL 也只显示“localhost”。

检查错误日志后,我得到了更多信息:

[Mon Aug 09 00:21:55.011957 2021] [authz_core:error] [pid 78225] [client ::1:56063] AH01630: client denied by server configuration: /Applications/XAMPP/xamppfiles/htdocs/, referer: https://localhost/Real%20Website/index.php

问题

知道为什么我会收到“禁止访问!”更改根目录后报错?

我尝试过的事情

我将“Require all denied”这行改成“Require all grant”,如下图,没有用(可能这些行没有影响)。

<Directory "/Applications/XAMPP/xamppfiles/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

另外,这是文件夹目录的配置:

<Directory "/Applications/XAMPP/xamppfiles/htdocs/Real Website">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Require all granted
</Directory>

我还尝试将“Real Website”文件夹的文件权限更改为 777,但也没有用。

这可能与两个单词的文件夹名称有关吗? “真实”和“网站”之间的空间是否会成为问题?我在尝试向 .htaccess 添加内容时遇到了问题,所以我想知道这是否也是这里的问题。

如果有任何问题,请告诉我。

【问题讨论】:

    标签: apache xampp webserver


    【解决方案1】:

    如果您希望人们能够访问“真实网站”目录,那么您必须授予他们对该目录的访问权限,类似这样...

    <Directory "/Applications/XAMPP/xamppfiles/htdocs/Real Website">
        Require all granted
    </Directory>
    

    【讨论】:

    • 对不起,忘记在我的帖子中包含这些行。我已经在我的帖子中编辑的那些目录标签下列出了“要求所有授予”。还有其他想法吗?
    • AllowOverride All - 这使 .htaccess 文件能够覆盖您的主要 httpd.conf 设置,.htaccess 文件会减慢 apache,因此如果您有权访问主要的 apache 配置文件 httpd,建议不要使用它们。配置
    • 当然可以。这并没有解决问题,但我会考虑到这一点。
    • 我认为您重新启动了 apache 以应用新配置?
    • 是的,重启 apache 无济于事。但是,我发现我没有编辑我的第一个目录标签,所以我编辑了那些以授予访问权限,这似乎已经修复了“禁止访问”错误。唯一的问题是现在当我使用“/”来引用服务器的根目录时,它仍然会转到 localhost/dashboard,而不是转到“Real Website”文件夹内的索引页面。所以似乎更改文档根目录并没有真正改变任何东西?不确定。我会继续调查的。如果您编辑答案以包括更改第一个目录标签,我会批准它。
    猜你喜欢
    • 2017-08-25
    • 2012-02-05
    • 1970-01-01
    • 2023-04-01
    • 2011-08-19
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多