472

ブラウザ経由で localhost にアクセスしようとすると、このエラーが発生します。

AH01630: client denied by server configuration

次を使用して、サイトフォルダーのアクセス許可を確認しました。

sudo chmod 777 -R *

ここに私の設定ファイルがあります:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/user-name/www/myproject
<Directory />
    Options FollowSymLinks
    AllowOverride all
    Allow from all
</Directory>

<Location />
  Allow from all
  Order Deny,Allow
</Location>

<Directory  /home/user-name/www/myproject/>
    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 all
    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

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride all
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

4

30 に答える 30

829

Apache 2.4 を使用している場合

許可ルールと拒否ルールを確認する必要があります

http://httpd.apache.org/docs/2.4/upgrading.html#accessをチェックしてください

2.2 では、クライアントのホスト名、IP アドレス、およびクライアント要求のその他の特性に基づくアクセス制御は、ディレクティブ Order、Allow、Deny、および Satisfy を使用して行われました。

2.4 では、このようなアクセス制御は、新しいモジュール mod_authz_host を使用して、他の承認チェックと同じ方法で行われます。

新しいディレクティブはRequireです:

2.2 構成:

Order allow,deny
Allow from all

2.4 構成:

Require all granted

また、これらの変更後に apache サーバーを再起動することを忘れないでください ( # service httpd restart)

于 2013-10-25T11:37:55.767 に答える
313

すべてのディレクトリについて、Require all granted代わりに書き込みますAllow from all 何かのようなもの

アップデート

上記が機能しない場合は、以下の行も削除します。

注文許可、拒否

于 2013-11-13T10:32:32.153 に答える
40

DocumentRoot パスが正しいことを再確認してください。これにより、このエラーが発生する可能性があります。

于 2013-11-02T08:34:36.767 に答える
26

Apache をバージョン 2.4 にアップグレードする OSX 10.10 Yosemite に ravisorg が提案したのと同じ変更を加えました。以下は、http.conf に追加された変更です。

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory /Volumes/Data/Data/USER/Sites/>
    AllowOverride none
    Require all granted
</Directory>
于 2014-09-10T14:08:38.453 に答える
4

I got resolved my self after spending couple of hours.

I installed Apache/2.4.7 (Ubuntu) through coookbook in vagrant vm.

/etc/apache2/apache2.conf file does not have <VirtualHost *:80> element by default.

I did two changes to get it done

  1. added <VirtualHost *:80>
  2. added
    Options Indexes FollowSymLinks
    AllowOverride all
    Allow from all

then finally I just booted vm..

于 2015-12-08T18:39:30.133 に答える
4

そのワンプサーバーのデフォルトがhttpd-vhosts.confファイルを含まないことについて誰かが考えましたか? 私のアプローチは、以下のメモを削除することです

 conf
  # Virtual hosts
  Include conf/extra/httpd-vhosts.conf

httpd.confファイルで。それだけです。

于 2016-04-05T06:29:34.070 に答える
3

エラー ログを追跡してページをリロードすると、正確な問題に関する詳細情報が表示されるはずです。

環境変数を取得して、${APACHE_LOG_DIR} が実際に機能するようにします...

source /etc/apache2/envvars

それから尾を引いて見てください...

tail -f ${APACHE_LOG_DIR}/error.log
于 2013-08-23T00:39:56.223 に答える
2

これは私を夢中にさせていました。最後に、問題が何であるかを突き止めました。エラーログに直接パスを使用していましたが、それらが間違っていました。

Apache があいまいな (そして間違った) エラーメッセージを表示するのはなぜですか? 代わりに、次のような正しく有用なエラー メッセージを使用してください。

とにかく、修正するには、エラー ログ ディレクティブが次のようになっていることを確認してください。

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
于 2016-09-07T20:00:26.667 に答える
2

:80 エントリにディレクトリ アクセスを追加することで、実際にこれを解決しました。

 <Directory "c:/whatever-directory-you-use/">
    AllowOverride All
    Require all granted
</Directory>

誰もが私にすべての「セキュリティ」を与える前に、私の特定の状況では、これはセキュリティの問題ではありません.

リモート リソースを使用している場合は、代わりに CURL リクエストが HTTPS / TLS 経由で送信されるようにすることをお勧めします。その後、このディレクトリ エントリは 443 ポートで送信されます。

于 2019-08-17T05:58:42.060 に答える
1

Require all grantedhttps ホストがある場合は、ssl構成も変更することを忘れないでください。

また、apache ユーザーとして権限を確認すると便利な場合もあります。

# ps -eFH | grep http # get the username used by httpd
...
apache   18837  2692  0 119996 9328   9 10:33 ?        00:00:00     /usr/sbin/httpd -DFOREGROUND
# su -s/bin/bash apache # switch to that user
bash-4.2$ whoami
apache
bash-4.2$ cd /home
bash-4.2$ ls
bash-4.2$ cd mysite.com
bash-4.2$ ls
bash-4.2$ cat file-which-does-not-work.txt
于 2016-11-04T14:39:50.493 に答える
1

このスレッドは、前述のエラーを検索するときに最初に表示されるスレッドであるため、このエラーの別の考えられる原因を追加したいと思いmod_evasiveます。mod_evasive.conf

以前は問題がなく、他に何も変更されていないクライアントに対して突然このエラーが発生した場合、これは特に調査する価値のある原因です。

(それmod_evasiveが原因である場合、クライアントがサイトへのアクセスを一時的に停止するだけで、エラーは自然に消えます。ただし、設定した制限が厳しすぎることを示している可能性があります)

于 2020-01-08T12:06:32.680 に答える
0

誰かに役立つかもしれない別のものを手に入れました。PHP 5.6 => 7.0 からアップグレードした後、同じエラー メッセージが表示されました。PHP のアップロード設定を変更しており、コピーした後に変更するのを忘れていました。当時は画像をアップロードしていませんでしたが、Silverstripe (当社の CMS) は保存を拒否し、そのエラーをスローしていました。画像のアップロード サイズを大きくすると、すぐに機能しました。

于 2018-07-16T22:36:33.703 に答える