Linux
如何修復網站上任何文件上的權限被拒絕錯誤
所以,我一直在嘗試設置 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