Apache 尝试访问服务器上的“/”时出现 403 错误

Posted

技术标签:

【中文标题】Apache 尝试访问服务器上的“/”时出现 403 错误【英文标题】:Apache Gives me 403 Error when trying to access "/" on server 【发布时间】:2014-02-19 02:50:50 【问题描述】:

当我尝试将 web 根路径更改为任何其他文件夹时,它给了我一个 403 错误(禁止),默认路径是 /Library/WebServer/Documents,但由于这对我来说相当烦人,我也更改了它/Users/Xero/WebServer

权限

我通过右键单击并选择Get info(http://i.imgur.com/f21D7z0.png它的样子)从/Library/WebServer/Documents获得了权限

所以我将其更改为与/Users/Xero/WebServer 完全相同。但它仍然给我一个 403 错误。


尝试修复

所以,我在 Google 上查找了它,并尝试了以下解决方案来解决我的问题:

http://www.cyberciti.biz/faq/apache-403-forbidden-error-and-solution/

Error message "Forbidden You don't have permission to access / on this server"(堆栈溢出)

但他们没有帮助。


其他说明

请记住,我在 OS X Snow leopard 上使用预装的 Apache。而且,我的虚拟主机不是本地的,所以它不是 hosts 文件问题的一部分(它托管在我的 DNS 之外,我的 IP 作为备份,都不起作用)

我的虚拟主机:

<VirtualHost *:80>                                      ( Edited 2 )
    DocumentRoot "/Users/Xero/WebServer" 
</VirtualHost>

<VirtualHost *:80>
        Options Indexes FollowSymLinks Includes ExecCGI
        DocumentRoot "/Users/Xero/WebServer"
        ServerName wrks.tk
        ErrorLog "/Logs/Workarea/wrks-err"
        CustomLog "/Logs/Workarea/wrks-acc" common
        DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
        <Directory "/Users/Xero/WebServer">
                Options +Indexes FollowSymLinks +ExecCGI
                AllowOverride AuthConfig FileInfo
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "/Users/Xero/WebServer"
        ServerName 209.169.203.53
        ErrorLog "/Logs/Workarea/ip"
        CustomLog "/Logs/Workarea/ip-acc" common
        <Directory "/Users/Xero/WebServer">
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

另外,我的 httpd.conf UserGroup 设置如下:

User _www
Group _www


对答案的回应


编辑

    所以,我修复了文档的路径,但它仍然给我同样的错误,403。 我检查了我的防火墙设置,但它已关闭。我还检查了我的“共享首选项”、“文件共享”和“网络共享”是否开启。 我在 `wrks.tk` VirtualHost 中编辑了 `DirectoryIndex Home.php Home.html` 的副本,但仍然遇到同样的错误。 (见其他说明) 也添加了更多其他注释。 修复了目录,但仍然没有解决问题。 在回答回复中添加了另一个。 尝试重新启动计算机,但不起作用。 我在文件夹中放了一个`index.html`,还是一样的403错误,我尝试访问`/index.html`,还是403。

【问题讨论】:

sudo chown -R www-data /Users/Xero/WebServer ..... chmod -R 644 /Users/Xero/WebServer 请避免在 cmets 中回答(如果我得到答案,我可以投票给答案)。但我会试一试。 @RobertRozas 第一个给出了这个错误:chown: www-data: Invalid argument 第二个没有解决问题。 检查 /var/www 文件夹的用户...您必须授予该用户对 /Users/Xero/WebServer 的所有权和正确的权限...在 osx 中,用户不是 www-数据(我的错误)但是_www @RobertRozas 好的,检查第四次编辑,我会再试一次。 【参考方案1】:

您究竟是从哪个文件获得所有这些信息的?

<VirtualHost *:80>                                      ( Edited 2 )
DocumentRoot "/Users/Xero/WebServer" 
</VirtualHost>

<VirtualHost *:80>
    Options Indexes FollowSymLinks Includes ExecCGI
    DocumentRoot "/Users/Xero/WebServer"
    ServerName wrks.tk
    ErrorLog "/Logs/Workarea/wrks-err"
    CustomLog "/Logs/Workarea/wrks-acc" common
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
    <Directory "/Users/Xero/WebServer">
            Options +Indexes FollowSymLinks +ExecCGI
            AllowOverride AuthConfig FileInfo
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Users/Xero/WebServer"
    ServerName 209.169.203.53
    ErrorLog "/Logs/Workarea/ip"
    CustomLog "/Logs/Workarea/ip-acc" common
    <Directory "/Users/Xero/WebServer">
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

这些设置有多个文件。如果您有 apache,请查看 sites-enabledsites-available 文件夹。


httpd.conf 文件的底部更改为:

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All

#
# Controls who can get stuff from this server.
#
Require all granted

创建一个新文件index.html 并将以下内容放入其中:

<!DOCTYPE html>
<html>
<body>

<h1>It works!</h1>

<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>

</body>
</html>

然后将index.html文件放到空目录中。


/etc/apache2/users/ 中创建一个名为 yourusername.conf 的文件(您的用户名是帐户短名称,例如 hulu - 它通常是您在 /Users 中的主文件夹的名称),其内容如下:

<Directory "/Users/yourusername/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

【讨论】:

来自httpd-vhosts.conf 你在用lampp吗?还是阿帕奇? Apache,我使用的是预装的 OS X (Snow Leopard) 版本。 是的,我愿意。但不是“完全相同”,而是非常相似 加了一点改动,改完后重启apache。

以上是关于Apache 尝试访问服务器上的“/”时出现 403 错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试访问 EC2 上的 Web 应用程序时出现“您无权访问 / 在此服务器上”

尝试在 Windows 中访问 apache vhost 时出现禁止错误

禁止访问!尝试运行 php 文件时出现错误 403

尝试访问部署在 Netlify 上的站点时出现“找不到页面”

访问 Gmail API 时出现错误请求

找不到 MySQL - 尝试从命令行访问 MySQL 时出现“找不到命令”错误