2013-07-14 158 views
37

我跑我的桌面上的Ubuntu 13.04 64位,我安裝的Apache2,MySQL和PHP等Apache2虛擬主機403被禁止?

我想讓我的網站根在/home/afflicto/public_html,而不是/var/www。 因此,我遵循本指南:
http://www.maketecheasier.com/install-and-configure-apache-in-ubuntu/2011/03/09
(我做了「配置不同網站」的所有內容),因爲我更喜歡解決方案。

這裏就是我所做的:
安裝的Apache2,MySQL的等。
複製/etc/apache2/sites-avaliable/default/etc/apache2/sites-available/afflicto。然後修改它,它現在看起來如下:

的/ etc/apache2的/網站可用/ afflicto

<VirtualHost *:80> 
ServerAdmin [email protected] 

DocumentRoot /home/afflicto/public_html 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
</Directory> 
<Directory /home/afflicto/public_html/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</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 ${APACHE_LOG_DIR}/error.log 

# Possible values include: debug, info, notice, warn, error, crit, 
# alert, emerg. 
LogLevel warn 

CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

我做sudo a2dissite default && sudo a2ensite afflicto && sudo service apache2 restart

我創建了一個index.phpindex.html/home/afflicto/public_html/test/
當訪問localhost/testlocalhost/test/index.html等,我得到403禁止錯誤。

我在做什麼錯?提前致謝。

更新1
我已經public_html目錄的所有者設置爲www-data
sudo chmod -R +x public_html && sudo chmod -R 777 public_html
仍然是403錯誤。

下面是Apache的錯誤日誌的輸出:

[Sun Jul 14 06:10:32 2013] [error] [client 127.0.0.1] (13)Permission denied: access to/denied 

[Sun Jul 14 06:10:32 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied 

回答

19

結果我發現我的chmod命令不僅/home/afflicto/public_html而且/home/afflicto/目錄中。

奇怪。

+7

正確。 apache進程必須能夠訪問路徑中的每個目錄。另外,apache進程要求每個目錄具有全局訪問權限,否則它不會將目錄提供給(外部)世界。 – dsh

+0

我被卡住了,直到我申請了這個。謝謝! –

+2

根本不奇怪。您聲明的'DocumentRoot'是'/ home/afflicto/public_html',因此需要Apache訪問。 – JakeGould

92

我遇到了這個問題。但我不喜歡將我的主目錄組更改爲www-data。這個問題可以簡單地通過修改virtualHost的配置文件來解決。 只需將目錄標記配置包括這些

<Directory "your directory here"> 
    Order allow,deny 
    Allow from all 
    Require all granted 
</Directory> 

Require all granted是一項新功能我猜;默認值爲denied

查看此頁面瞭解更多信息:http://httpd.apache.org/docs/current/mod/core.html#directory

+1

爲我修好了!謝謝 – STW

+3

顯然2.4和2.4版不需要Order和Allow? –

+7

'要求所有授予'是黃金。非常感謝! –