web-dev-qa-db-ja.com

Apache2仮想ホスト403は禁止されていますか?

デスクトップでubuntu 13.04 64ビットを実行しています。Apache2、MySQL、およびPHPなど。

Webルートを/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/sites-available/afflicto

<VirtualHost *:80>
ServerAdmin webmaster@localhost

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/testまたはlocalhost/test/index.htmlなどにアクセスすると、403 forbidden errorが発生します。

私は何を間違えていますか?前もって感謝します。

update 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
42
Petter Thowsen

/home/afflicto/public_htmlだけでなく、/home/afflicto/ディレクトリもchmodしなければならなかったことがわかりました。

奇妙な。

20
Petter Thowsen

この問題に直面しました。しかし、ホームディレクトリのグループをwww-dataに変更するというアイデアは好きではありませんでした。この問題は、virtualHostの構成ファイルを変更するだけで簡単に解決できます。これらを含めるようにDirectoryタグを設定するだけです

<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

105
Peter