私は
[2012 年 4 月 24 日火曜日 12:12:55] [エラー] [クライアント 127.0.0.1] クライアントはサーバー構成によって拒否されました: /labs/Projects/Nebula/bin/
私のディレクトリ構造は次のようになります (私は Symfony 2 を使用していますが、他の Web フレームワークでも同様の構造になるはずです)
次のように vhosts を設定しています:
<VirtualHost nebula:80>
DocumentRoot "/labs/Projects/Nebula/web/"
ServerName nebula
ErrorLog "/var/log/httpd/nebula-errors.log"
</VirtualHost>
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
Order allow,deny
Allow from 127.0.0 192.168.1 ::1 localhost
</Directory>
何が問題なのか、どうすれば解決できるのか知りたいです。
ベストアンサー1
Apache 2.4.3 (またはそれより少し前) では、このエラーの原因となることが多い新しいセキュリティ機能が追加されました。また、「サーバー設定によりクライアントが拒否されました」という形式のログ メッセージも表示されます。この機能では、ディレクトリにアクセスするために承認されたユーザー ID が必要です。これは、Apache に同梱されている httpd.conf の DEFAULT によって有効になっています。この機能を有効にするには、次のディレクティブを使用します。
Require all denied
これは基本的に、すべてのユーザーへのアクセスを拒否することを意味します。この問題を解決するには、拒否されたディレクティブを削除するか (または、よりよい方法として、アクセスを許可するディレクトリに次のディレクティブを追加します)。
Require all granted
例えば
<Directory "your directory here">
Order allow,deny
Allow from all
# New directive needed in Apache 2.4.3:
Require all granted
</Directory>