Ubuntu/Apache2/禁止/权限错误

Posted

技术标签:

【中文标题】Ubuntu/Apache2/禁止/权限错误【英文标题】:Ubuntu/Apache2/ Forbidden/Permission error 【发布时间】:2012-01-23 10:16:48 【问题描述】:

我有安装 Lamp 的 Ubuntu 11.10

有些文件我无法从我的网络目录“/var/www”访问

http://localhost/banner/banner.html 我收到一个错误:

禁止您无权访问此服务器上的 /banner/banner.html。 Apache/2.2.20 (Ubuntu) 服务器在 localhost 端口 80

我可以正常访问/var/www/index.php,因为我也可以从我的浏览器正常浏览/var/www/banner

这是一个小小的和平:

    a1a4a@A1A4a:~$ ls -l /var/www
    total 7088
    -rwxrwxrwx  1 root root     916 2011-11-25 20:49 access-controlled.php
    -rw-r--r--  1 root root   22163 2011-12-16 22:28 account_info.php
    -rw-r--r--  1 root root   22126 2011-12-16 22:27 account_info.php~
    -rw-r--r--  1 root root   16585 2011-12-16 21:32 acount_info.php
    -rw-r--r--  1 root root       0 2011-12-16 21:28 acount_info.php~
    drwxrwxrwx  5 root root    4096 2011-12-09 23:03 banner
    drwxrwxrwx  2 root root    4096 2011-12-09 23:03 css

    a1a4a@A1A4a:~$ ls -l /var/www/banner
    total 20
    -rw--w---- 1 root root 2564 2011-11-25 20:51 banner.html
    drwx-w---- 4 root root 4096 2011-12-09 23:03 examples
    drwx-w---- 2 root root 4096 2011-12-09 23:03 lib
    drwx-w---- 4 root root 4096 2011-12-09 23:03 skins
    -rw--w---- 1 root root 1431 2011-11-25 20:51 style.css

这是我的配置:

    <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>

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

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    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>

我的“nano /etc/apache2/apache2.conf”被设置为默认...

如何让我的所有 /var/www 文件(文件夹和子文件夹和文件)可以从我的浏览器访问,就像我在使用 Wamp 的 Windows 机器上一样......

P.S:我将把网站托管在我使用 ubuntu 仅用于编码的 Windows 机器上。

【问题讨论】:

【参考方案1】:

在 ubuntu 上运行 apache 守护程序的用户就是 www-data(就像在大多数基于 debian 的系统中一样),至少需要文件的读取权限。 但是正如您发布的那样,只有所有者root 和组root 具有读取权限。

实际上所有者root 拥有rw 群组root 拥有r

所以实际运行网络服务器(www-data)的用户属于其他权限,没有权限。

要么使用chmod -R o+r /var/www/banner/*chown -R www-data /var/www/banner 来解决这个问题。

【讨论】:

【参考方案2】:

我总是忘记子目录和文件需要读权限,子目录也需要执行权限。

chmod a+x banner

当我使用 Chrome 或 Firefox 以“网页,完整”格式保存网页,然后尝试在 localhost 下提供它时,往往会出现这种情况,我在为客户构建模型时经常这样做。

【讨论】:

【参考方案3】:

可能是您的banner.html 权限有问题 - apache 的用户甚至没有读取它的权限。

【讨论】:

以上是关于Ubuntu/Apache2/禁止/权限错误的主要内容,如果未能解决你的问题,请参考以下文章

Azure 存储错误:“尝试以访问权限禁止的方式访问套接字。”

Cloud SQL 代理错误 - 尝试以访问权限禁止的方式访问套接字

Artisan 错误:无法在 localhost:8000 上侦听(原因:尝试以访问权限禁止的方式访问套接字。)

Azure 应用服务 SFTP 出站错误尝试以访问权限禁止的方式访问套接字

403 禁止网站资源(js、png、css)但权限正常?

图像 403 禁止错误