Virtualhost
Apache2 伺服器上的另一個 (13)Permission denied 錯誤
我就是想不通。我在 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
我將嘗試在下面提供所有必要的資訊:
- /etc/apache2/httpd.conf 的內容
DirectoryIndex index.html index.php
- /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>
- /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
- 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
- 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