私はなっています
[Tue Apr 24 12:12:55 2012] [エラー] [クライアント127.0.0.1]クライアントがサーバー設定で拒否しました:/ labs/Projects/Nebula/bin /
私のディレクトリ構造は次のようになっています(私はSymfony 2を使っています、他のWebフレームワークでも同様の構造であるべきです)
私はバーチャルホストを次のように設定しています。
<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>
私はその問題をどうやって解決したのでしょうか。
OK間違った構文を使っています、使うべきです
Allow from 127.0.0.1
Allow from ::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>
Apache 2.4では、古いアクセス許可構文が非推奨になり、Requireを使用して新しいシステムに置き換えられました。
あなたが望むものは次のようなものです:
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
<RequireAny>
Require local
Require ip 192.168.1
</RequireAny>
</Directory>
これにより、ローカルホストまたはipからからeitherを発信する接続が許可されます。 「192.168.1」で始まるアドレス。
構成をすぐに更新したくない場合に、Apache 2.4に古い構文を認識させる新しいモジュールもあります。
Sudo a2enmod access_compat
「127.0.0 192.168.1 :: 1 localhostからの許可」を「すべてから許可」に変更してみてください。それでも問題が解決した場合は、どこからコンテンツをリクエストできるかについて制限を少なくする必要があります。
これが私のsymfony 1.4仮想ホストファイルです。
<Directory /var/www/sf_project/web/>
Options All Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
アクセスを特定のIPアドレス範囲に制限したくない場合は、 localhostはこれを使う:
Allow from 127.0.0.0/8
mod_authz_Host はIP範囲のフィルタリングを担当します。あなたはそこで詳細なことを調べることができます。
しかし、おそらく問題はあなたの "Apache2.conf"のある種の設定ミスに関連している可能性があります。
ApacheはどのOSで稼働していますか?
私はVesta CPを使用してこの問題を抱えていたので、私にとっては、トリックは.htaccessを削除してから任意のファイルに再度アクセスしようとすることでした。
その結果、.htaccessファイルが再生成され、ファイルにアクセスできました。
あなたが持っているなら
Allow from All
それからhttpd.confに
index.php
httpd.confの以下の行のように
DirectoryIndex index.html index.php
私の場合、鍵は次のとおりです。
AllowOverride All
バーチャルホストの定義で。誰かに役立つことを願っています。