【问题标题】:Apache2 virtualhost 403 forbidden?Apache2虚拟主机403禁止?
【发布时间】:2013-07-12 06:19:52
【问题描述】:

我在桌面上运行 ubuntu 13.04 64bit,我安装了 Apache2、MySQL 和 PHP 等。

我想让我的网络根在/home/afflicto/public_html 而不是/var/www。 所以我跟着这个指南走:
http://www.maketecheasier.com/install-and-configure-apache-in-ubuntu/2011/03/09
(我从“配置不同的站点”开始做所有事情)因为我更喜欢这个解决方案。

这是我所做的:
已安装 Apache2、MySQL 等。
/etc/apache2/sites-avaliable/default 复制到/etc/apache2/sites-available/afflicto。然后编辑它,它现在看起来如下:

/etc/apache2/sites-available/afflicto

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/afflicto/public_html
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /home/afflicto/public_html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>  

我做了sudo a2dissite default &amp;&amp; sudo a2ensite afflicto &amp;&amp; sudo service apache2 restart

我在/home/afflicto/public_html/test/ 中创建了index.phpindex.html
访问localhost/testlocalhost/test/index.html 等时,出现403 禁止错误。

我做错了什么?提前致谢。

更新 1
我已将 public_html 目录的所有者设置为 www-data
还有sudo chmod -R +x public_html &amp;&amp; sudo chmod -R 777 public_html
还是一样的 403 错误。

这是 apache 错误日志的输出:

[Sun Jul 14 06:10:32 2013] [error] [client 127.0.0.1] (13)Permission denied: access to / denied

[Sun Jul 14 06:10:32 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied

【问题讨论】:

    标签: ubuntu apache2 virtualhost http-status-code-403


    【解决方案1】:

    我为这个确切的问题苦苦挣扎了好几个小时,最终为我解决了这个问题的是在apache2.conf 的目录之后添加一个斜杠。

    &lt;Directory /dir&gt; -> &lt;Directory /dir/&gt;

    【讨论】:

      【解决方案2】:

      这是另一个旨在添加更简单解释的答案。假设您要提供一个名为“main”的文件,该文件位于/var/www/testwebsite 目录(已配置和启用的虚拟主机的 DocumentRoot)中。现在假设我们希望 Apache Web 服务器只能访问“主”文件而不是其他文件(例如 main 可能是我们 Web 应用程序的入口点),那么这意味着 Apache Web 服务器必须是那个文件。所以chown www-data:www-data /var/www/testwebsite/main 必须这样做。 (注意:www-data 既是用户的名称,也是 apache 在与其他文件交互时使用的组的名称(实际上,在 Ubuntu 以外的发行版上,这可能是一个不同的名称,在这种情况下,它可以简单地是在apache2.conf 中查找))。此外,如果“主”文件没有读取/执行的权限,则必须将其授予 apache 的用户和组:chmod 770 /var/www/testwebsite/main。这给了作为文件“main”所有者的用户(www-data)和组(www-data)这些权限:读/写/执行(4 + 2 + 1 = 7),并且不给其他用户任何权限.现在单个文件(主文件)可以由 Apache 运行,而我们可以对 /var/www/testwebsite 目录中的所有其他文件进行任何其他严格级别的限制。

      【讨论】:

        【解决方案3】:

        这些选项对我有用:

         Options Indexes FollowSymLinks
         AllowOverride All   
         Require all granted
        

        【讨论】:

          【解决方案4】:

          原来我不仅要 chmod /home/afflicto/public_html 还要 /home/afflicto/ 目录。

          很奇怪。

          【讨论】:

          • 正确。 apache 进程必须有权访问路径中的每个目录。此外,apache 进程要求每个目录都具有世界访问权限,否则它不会将目录提供给(外部)世界。
          • 一点也不奇怪。您声明的DocumentRoot/home/afflicto/public_html,因此需要Apache 可以访问。
          【解决方案5】:

          我遇到了这个问题。但是我不喜欢将我的主目录组更改为 www-data 的想法。这个问题可以简单地通过修改virtualHost的配置文件来解决。 只需配置目录标签以包含这些

          <Directory "your directory here">
             Order allow,deny
             Allow from all
             Require all granted
          </Directory>
          

          我猜Require all granted 是一个新功能;默认值为denied

          查看此页面了解更多信息:http://httpd.apache.org/docs/current/mod/core.html#directory

          【讨论】:

          • 为我解决了这个问题!谢谢
          • 显然 2.4 不需要订购和允许?
          • Require all granted 是金子。非常感谢!
          • 存在Require all granted 可能仍无法解决问题的情况。从用户目录提供文件的情况[可能已加密]。在这种情况下,您需要在用户目录上执行chmod +x。我添加此评论是因为我遇到此错误“访问被拒绝,因为缺少搜索权限”;我家目录上的 chmod +x 提供了帮助。我不确定这是否非常安全,但我的主目录已加密。
          • 就我而言,我还需要这样做 "chmod +x /home/(username)", andrewklau.com/…
          猜你喜欢
          • 2015-12-30
          • 2015-08-26
          • 2017-09-07
          • 2015-08-13
          • 2023-03-04
          • 1970-01-01
          • 2015-05-24
          • 2012-11-04
          • 2019-01-01
          相关资源
          最近更新 更多