ブラウザで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>
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
)
ravisorgがOSX 10.10 Yosemiteに提案したのと同じ変更を加え、Apacheをバージョン2.4にアップグレードしました。 以下は、http.confに追加された変更です。
<Directory />
AllowOverride none
Require all denied
</Directory>
<Directory /Volumes/Data/Data/USER/Sites/>
AllowOverride none
Require all granted
</Directory>
これは私に1日半の絶対的な混乱を引き起こしましたが、他のすべての解決策が失敗に終わった場合、解決策を見つけました。
これはmacOS用です。
-アクティビティモニターに移動します(スポットライト検索:アクティビティ)。 -アクティビティモニターで、Apacheサービスであるhttpdを検索します。 -ルートに属するものを選択し、左上のXをクリックして閉じます。
その時点で、私はすぐに403のエラーの取得を停止し、すべてが期待どおりに機能し始めました。 奇妙なことに、機能したばかりのapacheを再起動する必要さえありませんでした。localhostに行ったときに再起動したと思います。正直なところ、わかりませんが、問題は、apachectl restartを使用しているときにApacheが実際に再起動しないことです。停止または開始。 これが誰かを助けることを願っています。
数時間過ごした後、私は自分自身を解決しました。
Apache / 2.4.7(Ubuntu)をvagrant vmのcookbookからインストールしました。
/etc/apache2/apache2.confファイルには、デフォルトで < VirtualHost *:80>
要素がありません。
私はそれを成し遂げるために2つの変更を加えました。
1。 < VirtualHost *:80>
を追加しました。
2。 追加。
オプションインデックスFollowSymLinks。
AllowOverrideすべて。
すべてから許可します。
最後にvmを起動しました。.
私の場合、
macOS Mojave(Apache / 2.4.34)を使用しています。 /etc/apache2/extra/httpd-vhosts.confファイルの仮想ホスト設定で問題がありました。 必要なディレクトリタグを追加した後、私の問題はなくなりました。
付与されたすべてを要求します。
完全な仮想ホストセットアップ構造があなたを救うことを願っています。
<VirtualHost *:80>
DocumentRoot "/Users/vagabond/Sites/MainProjectFolderName/public/"
ServerName project.loc
<Directory /Users/vagabond/Sites/MainProjectFolderName/public/>
Require all granted
</Directory>
ErrorLog "/Users/vagabond/Sites/logs/MainProjectFolderName.loc-error_log"
CustomLog "/Users/vagabond/Sites/logs/MainProjectFolderName.loc-access_log" common
</VirtualHost>
MainProjectFolderNameを正確なProjectFolderNameに置き換えます。
これは私を狂わせていました。 最後に、問題が何であるかを理解しました。 エラーログに直接パスを使用していましたが、間違っていました。
Apacheがあいまいな(そして間違った)エラーメッセージを与えるのはなぜですか? 代わりに、次のような正確で便利なエラーメッセージを使用します。Pathfor ErrorLogディレクティブ "/wrong/path/and/filename.log"は無効です。
とにかく、修正するには、エラーログディレクティブがこのように見えることを確認してください。
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Windows OSのWampServerでApache 2.4を使用している場合。
メモ帳で https-vhosts.conf ファイルを開く必要があります。
C:\wamp64\bin\apache\apache2.4.37\conf\extra\https-vhosts.conf
上記のファイルが見つからない場合。 以下のスクリーンショットをチェックしてください。 。。
<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/wamp64/www
<Directory "c:/wamp64/www/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
上記のコードで置換。
Require local
と。
Require all granted
そしてそれを保存します。 Apacheサービスを再起動して、もう一度試してください。
私にとっては、2.4標準に基づいて、許可と拒否のルールを実際に更新していました。
Require all granted
しかし、それでも同じAH01630エラーが発生しました。 別のスレッドを見つけ、apache2の再インストールを提案しました。 どういうわけかこれはうまくいきました。! 誰かが理由を説明したいのであれば、それは役に立ちます。
httpsホストを使用している場合は、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
Wamp 3(Apache 2.4)の場合、他の回答で説明されているようにサーバーをオンラインに置くことに加えて、仮想ホストファイル conf / extra / httpd-vhosts.conf
にあります。
交換する必要がある場合があります。
Require local
と。
Require all granted
Include conf/extra/httpd-vhosts.conf
このページで他の回答がどれもない場合は、何時間もぶらぶらしていた後に私が遭遇したものです。
/private/etc/apache2/extra/httpd-userdir.conf
で UserDir
として Sites
を指定して、ユーザー固有の構成を使用しました。 ただし、エンドポイント http://localhost /〜jwork /
へのアクセスは禁止されていました。
/ var / log / apache2 / error_log
で、 / Users / jwork / Sites /
へのアクセスがブロックされていることがわかりました。 ただし、 http://localhost /
を介してDocumentRootにアクセスすることを許可されました。 これは、「〜jwork」ユーザーを表示する権利がないことを示唆しています。 しかし、私が知る限り、 ps aux | egrep '(apache | httpd)'
と lsof -i:80
で、Apacheは jwork
ユーザーで実行されていたため、ユーザー構成で何かが明らかに記述されていませんでした。
「jwork」という名前のユーザーがいる場合、これが私の構成ファイルです。
/private/etc/apache2/users/jwork.conf
。。 <ディレクトリ "/ Users / jwork / Sites /">。 付与されたすべてを要求します。 < / Directory>。
。
この構成は完全に有効です。 ただし、ユーザー構成が含まれていないことがわかりました。
/private/etc/apache2/extra/httpd-userdir.conf
。``。
``。
これはuserdir confファイルのデフォルトパスですが、以下に示すように、「httpd.conf」で構成できます。 次の行が有効になっていることを確認します。
/private/etc/apache2/httpd.conf
。``。 / private/etc/apache2/extra/httpd-userdir.confを含めます。
LoadModule userdir_module libexec / apache2 / mod_userdir.so。 ``。
問題は、ディレクティブが<の下にないことです。ディレクトリ>。
https://httpd.apache.org/docs/2.4/mod/mod_authz_host.html#requiredirectives。
ディレクティブは<内で参照できます。ディレクトリ>、<ファイル>、または<場所>サーバーの特定の部分へのアクセスを制御するためのセクションと.htaccessファイル。 アクセスは、クライアントのホスト名またはIPアドレスに基づいて制御できます。
他の回答で言及されている「注文」および「許可」ディレクティブの欠落に加えて、「DirectoryMatch」ディレクティブのマッチングされていない正規表現もこのエラーを引き起こす可能性があることに注意してください。
リクエストされたパスが /home/user-foo1bar/www/myproject/
の場合、フォロインマッチャーは一致しません。
<DirectoryMatch "/home/user-[a-z]+/www/myproject/">
...
</DirectoryMatch>
したがって、有効なアクセス構成でもこのエラーが発生する可能性があります。