如何修复网站上任何文档上的权限被拒绝错误

如何修复网站上任何文档上的权限被拒绝错误

所以,我已经尝试安装 Wordpress 一段时间了(他们声称 5 分钟即可安装),但一直卡住了。不管怎样,我得到的只是:

Forbidden

You don't have permission to access /wordpress/ on this server.

当我查看目录时/var/www/wordpress,我看到:

# ls -l
total 276
-rw-r----- 1 www-data www-data   397 2008-05-25 20:33 index.php
-rw-r----- 1 www-data www-data  7669 2011-02-15 17:48 readme.html
drw-r----- 8 www-data www-data  4096 2012-03-05 20:55 wp-admin
-rw-r----- 1 www-data www-data 40400 2009-10-25 10:32 wp-app.php
-rw-r----- 1 www-data www-data   220 2008-10-14 06:22 wp-atom.php
-rw-r----- 1 www-data www-data   274 2008-05-25 15:50 wp-blog-header.php
-rw-r----- 1 www-data www-data  3928 2010-01-07 19:38 wp-comments-post.php
-rw-r----- 1 www-data www-data   238 2008-10-14 06:22 wp-commentsrss2.php
lrwxrwxrwx 1 www-data www-data    28 2012-03-05 20:55 wp-config.php -> /etc/wordpress/wp-config.php
-rw-r----- 1 www-data www-data  2616 2009-12-08 19:59 wp-config-sample.php
drw-r----- 5 www-data www-data  4096 2012-03-05 20:55 wp-content
-rw-r----- 1 www-data www-data  1253 2009-08-16 04:59 wp-cron.php
-rw-r----- 1 www-data www-data   220 2008-10-14 06:22 wp-feed.php
drw-r----- 6 www-data www-data  4096 2012-03-05 20:55 wp-includes
-rw-r----- 1 www-data www-data  1946 2009-05-05 19:43 wp-links-opml.php
-rw-r----- 1 www-data www-data  2341 2009-05-20 16:32 wp-load.php
-rw-r----- 1 www-data www-data 22859 2011-02-15 17:48 wp-login.php
-rw-r----- 1 www-data www-data  7578 2009-09-18 20:43 wp-mail.php
-rw-r----- 1 www-data www-data   487 2009-04-20 21:50 wp-pass.php
-rw-r----- 1 www-data www-data   218 2008-10-14 06:22 wp-rdf.php
-rw-r----- 1 www-data www-data   316 2008-05-25 15:50 wp-register.php
-rw-r----- 1 www-data www-data   220 2008-10-14 06:22 wp-rss2.php
-rw-r----- 1 www-data www-data   218 2008-10-14 06:22 wp-rss.php
-rw-r----- 1 www-data www-data 23097 2009-12-14 00:38 wp-settings.php
-rw-r----- 1 www-data www-data  3693 2009-11-26 11:29 wp-trackback.php
-rw-r----- 1 www-data www-data 93445 2009-12-01 08:14 xmlrpc.php

因此,www-data 拥有所有这些文件。所以,我在想也许 apache 没有以 www-data 的身份运行?所以我这样做了:

# ps -A | grep apache
22511 ?        00:00:00 apache2
22513 ?        00:00:00 apache2
22514 ?        00:00:00 apache2
22515 ?        00:00:00 apache2
22516 ?        00:00:00 apache2
22517 ?        00:00:00 apache2

那么,我猜 apache 是以 nobody 身份运行的?如果我查看 apache2.conf,我会看到:

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

envvars有:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid

所以,我完全被难住了!有什么想法吗?

更新:

哦,error.log 中的尾部还告诉我:

[Mon Mar 05 22:29:17 2012] [error] [client x.x.x.x] (13)Permission denied: access to /wordpress/index.html denied
[Mon Mar 05 22:29:17 2012] [error] [client x.x.x.x] (13)Permission denied: access to /wordpress/index.cgi denied
[Mon Mar 05 22:29:17 2012] [error] [client x.x.x.x] (13)Permission denied: access to /wordpress/index.pl denied
[Mon Mar 05 22:29:17 2012] [error] [client x.x.x.x] (13)Permission denied: access to /wordpress/index.php denied
[Mon Mar 05 22:29:17 2012] [error] [client x.x.x.x] (13)Permission denied: access to /wordpress/index.xhtml denied
[Mon Mar 05 22:29:17 2012] [error] [client x.x.x.x] (13)Permission denied: access to /wordpress/index.htm denied

更新 2:

我的站点默认可用内容为:

xxx:/etc/apache2/sites-available# cat default
<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    ExpiresActive On

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        ExpiresDefault A300
        ExpiresByType text/css "access plus 1 month"
        ExpiresByType text/javascript "access plus 1 month"
        ExpiresByType application/javascript "access plus 1 month"
        ExpiresByType image/gif "access plus 1 month"
        ExpiresByType image/jpg "access plus 1 month"
        ExpiresByType image/jpeg "access plus 1 month"
        ExpiresByType image/png "access plus 1 month"

        RewriteEngine On
    </Directory>

    ErrorLog /var/log/apache2/error.log

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

    CustomLog /var/log/apache2/access.log combined

</VirtualHost>

Sites-enabled 只有 000-default 指向该位置。

答案1

尝试进入上一级目录,然后确保您的用户有权执行 wordpress。例如:

cd ..
vdir | grep wordpress

相关内容