2009年9月9日 星期三

Apache:You don't have permission to accesson this server.

今天幫別人用Linux建帳號的時候
須要每個user都有屬於自己專屬的www家目錄,很幸運的apache就有這種功能了

先去找apache的設定檔 /etc/httpd/conf/httpd.conf

去裡面尋找UserDir的設定值

<IfModule mod_userdir.c>
........
UserDir public_html

</IfModule >

一般來講預設都是public_html,也就是說只要user家目錄下有個public_html目錄
那就會是他的wwwroot目錄
一般來說都是要自己建,假設我有個帳號Tom
那user家目錄就是
/home/Tom
我可以用mkdir去建我要的public_html
mkdir /home/Tom/public_html
但是我要存取的時候出現了錯誤訊息
You don't have permission to accesson this server.
上網google一下資料,看到人家說要修改

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all

< /Directory >

參考資料

把deny改成allow,不過後來發現早就設定好了 所以上面那招並沒解決問題
後來想想應該是權限問題,但是用ls -al 查了一下,我public_html跟其下權限都已經是755了

後來去看了一下鳥哥的文章,原來是使用者家目錄本身也要設定成755
新建的user帳號的家目錄權限是drwx----- ,必須修改成drwx-xr-x才能讓apache存取該目錄
所以建public_html正確順序應該如下

root狀態

~]$ cd /home/Tom
~]$ mkdir public_html
~]$ chmod 755 public_html
~]$ chmod 755 /home/Tom


user狀態


~]$ cd ~
~]$ mkdir public_html
~]$ chmod 755 public_html
~]$ chmod 755 ~

沒有留言: