Virtualhost

Apache2 伺服器上的另一個 (13)Permission denied 錯誤

  • October 30, 2013

我就是想不通。我在 Ubuntu 10.04 i386 伺服器上執行 apache2。每當我在瀏覽器mysub.domain.edu (在此處重命名)中訪問我的伺服器(具有 IP 地址,並使用靜態 IP xxx.xxx.xxx.xxx 連接到網際網路時,這不是問題),我得到以下資訊:

Forbidden
You don't have permission to access /index.html on this server

apache2 錯誤日誌證實了這一點:

[Mon Apr 18 02:38:20 2011] [error] [client zzz.zzz.zzz.zzz] (13)Permission denied: access to / denied

我將嘗試在下面提供所有必要的資訊:

  1. /etc/apache2/httpd.conf 的內容
DirectoryIndex index.html index.php
  1. /etc/apache2/sites-available/default 的內容
<VirtualHost *:80>
ServerAdmin email@domain.com

DocumentRoot /home/myusername/htdocs
       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
<Directory "/home/myusername/htdocs/">
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
order allow,deny
allow from all
DirectoryIndex index.html index.php
Satisfy any
</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 /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

   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>
ServerName mysub.domain.edu

</VirtualHost>
  1. /etc/apache2/sites-enabled/000-default 的內容
<VirtualHost *:80>
ServerAdmin email@domain.com

DocumentRoot /home/myusername/htdocs
       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
<Directory "/home/myusername/htdocs/">
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
order allow,deny
allow from all
DirectoryIndex index.html index.php
Satisfy any
</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 /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

   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>
ServerName mysub.domain.edu

</VirtualHost> 

4) ls -l 的結果(當我使用 sudo -i 作為 root 時):

root@myserver:/home/myusername# ls -l
total 4
drwxr-xr-x 2 www-data root 4096 2011-04-18 03:04 htdocs
  1. ps輔助www | grep -i 阿帕奇
root@myserver:/home# ps auxwww | grep -i apache
root     15121  0.0  0.4   5408  2544 ?        Ss   16:55   0:00 /usr/sbin/apache2 -k start
www-data 15122  0.0  0.3   5180  1760 ?        S    16:55   0:00 /usr/sbin/apache2 -k start
www-data 15123  0.0  0.5 227020  2788 ?        Sl   16:55   0:00 /usr/sbin/apache2 -k start
www-data 15124  0.0  0.5 227020  2864 ?        Sl   16:55   0:00 /usr/sbin/apache2 -k start
root     29133  0.0  0.1   3320   680 pts/0    R+   16:58   0:00 grep --color=auto -i apache
  1. ls -al /home/myusername/htdocs/
root@myserver:/# ls -al /home/myusername/htdocs/
total 20
drwxr-xr-x 2 www-data   root       4096 2011-04-18 03:04 .
drw-r--r-- 4 myusername myusername 4096 2011-04-18 02:13 ..
-rw-r--r-- 1 root       root         69 2011-04-18 02:14 index.html

我目前沒有在我的使用者文件夾中的 Web 根 (htdocs) 文件夾中使用任何 .htaccess 文件。

我不知道出了什麼問題,我已經嘗試修復他超過 12 個小時,但我無處可去。如果您有任何建議,我會全力以赴…

使您的 /home/username 和 /home 具有權限 755

編輯:我會在這裡添加,這樣更容易閱讀

你發布了這個:

drwxr-xr-x 2 www-data   root       4096 2011-04-18 03:04 .
drw-r--r-- 4 myusername myusername 4096 2011-04-18 02:13 ..

如您所見,/home/myusername 文件夾有 rw、r、r。您需要為該文件夾和 /home 文件夾提供“x”

chmod o+x /home
chmod o+x /home/myusername

(這更像是一個調試建議,因為我認為 Pratik 已經用 +x 回答了這個問題)

您提到的錯誤是文件系統權限錯誤,因此除非您的 apache 配置文件重定向/別名到文件系統中的某個受限位置,否則您的問題出在 /home/myusername/htdocs 目錄或索引上的權限.html 文件。

為了查看您的 apache 使用者在哪裡被拒絕,請執行以下命令;

su -s /bin/bash apache

然後嘗試

cd /home/myusername/htdocs

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