web-dev-qa-db-ja.com

OSXApacheで403を禁止する動的仮想ホスト

私は このガイド に従い、foo.devがWebフォルダ/fooに転送できるようにして、OSXで動的vhostを作成しようとしています。私の違いは、ガイドのようにMacHDの代わりに~/SitesをWebフォルダーとして使用していることです。インストールされ、正しく機能していると私が信じているdnsmasqを使用しています。

したがって、〜/ Sitesフォルダーには次のものがあります。

home
sites
|-foo
|-bar

私のhttpd-vhosts.confは次のようになります。

<Virtualhost *:80>
DocumentRoot "/Users/harryg/Sites/home"
ServerName home.dev
UseCanonicalName Off
ErrorLog "logs/home/error.log"
<Directory "/Users/harryg/Sites/home">
    #Options FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride None
    Allow from all
</Directory>
</Virtualhost>

<Virtualhost *:80>
VirtualDocumentRoot "/Users/harryg/Sites/sites/%1"
<Directory "/Users/harryg/Sites/sites/%1">
    Options FollowSymLinks
    #Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride None
    Allow from all
</Directory>
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>

最初の仮想ホストは正常に動作し、home.devに移動すると、その仮想ホストのルートにあるindex.phpファイルの例が表示されます。

2番目の仮想ホストは、.devのサブドメインにフォルダーが存在するかどうかに関係なく、anything.devに対して403Forbiddenエラーを表示します。

何か案は?

編集:

最新のログエントリ

Apacheエラーログ:

[Wed Dec 18 00:45:37 2013] [error] [client 127.0.0.1] File does not exist: /Users/harryg/Sites/home/favicon.ico
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server configuration: /Users/harryg/Sites/sites/test/, referer: http://home.dev/
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server 

サーバーが機能するようになりました(構成ファイルのエラーログディレクトリに問題がありました)。しかし、それでも動的vhostにアクセスすることはできません。

2
harryg

あなたの2番目のサイトのコンテンツは何ですか?

考えられる理由は2つあります。

  1. ディレクトリにindexドキュメント(index.php、index.html、default.htmlなど)がなく、ディレクトリリストが許可されていない場合、Apacheは403エラーページを表示します。

  2. Sites.devでExecCGIを有効にしていないことに気付きました。有効にしてみてください。

更新:パーセント記号のパス(/Users/harryg/Sites/sites/%1)はmod_vhost_alias用ですが、Apacheの<Directory>ルール。これを変更します。

<Directory "/Users/harryg/Sites/sites/%1">

これに:

<Directory "/Users/harryg/Sites/sites">

それは機能しますか?

2
ChiChou

これと同じ問題が発生したところ、Apacheのデフォルト設定であることが判明しました。 httpd.confにはこれがあります

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

「すべてから拒否」行を削除し、Apacheを再起動します。

1
satyr

アクセスが拒否された場合の403エラー状態。ツリーディレクトリからサイトディレクトリまでの権限を確認する必要があります。

Apacheを実行しているユーザーが、ディレクトリの読み取りおよび実行権限とファイルの読み取り権限を持っていることを確認してください。

0
fboaventura