Linux

如何修復網站上任何文件上的權限被拒絕錯誤

  • March 6, 2012

所以,我一直在嘗試設置 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 沒有人在執行?如果我查看 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>

啟用站點的只有 000-default 指向它。

嘗試上一個目錄,然後確保您的使用者有權在 wordpress 中執行。IE :

cd ..
vdir | grep wordpress

引用自:https://serverfault.com/questions/366625