Apache: サーバー設定によりクライアントが拒否されました 質問する

Apache: サーバー設定によりクライアントが拒否されました 質問する

私は

[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>

おすすめ記事