私は このガイド に従い、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番目のサイトのコンテンツは何ですか?
考えられる理由は2つあります。
ディレクトリにindexドキュメント(index.php、index.html、default.htmlなど)がなく、ディレクトリリストが許可されていない場合、Apacheは403エラーページを表示します。
Sites.devでExecCGIを有効にしていないことに気付きました。有効にしてみてください。
更新:パーセント記号のパス(/Users/harryg/Sites/sites/%1
)はmod_vhost_alias用ですが、Apacheの<Directory>
ルール。これを変更します。
<Directory "/Users/harryg/Sites/sites/%1">
これに:
<Directory "/Users/harryg/Sites/sites">
それは機能しますか?
これと同じ問題が発生したところ、Apacheのデフォルト設定であることが判明しました。 httpd.confにはこれがあります
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
「すべてから拒否」行を削除し、Apacheを再起動します。
アクセスが拒否された場合の403エラー状態。ツリーディレクトリからサイトディレクトリまでの権限を確認する必要があります。
Apacheを実行しているユーザーが、ディレクトリの読み取りおよび実行権限とファイルの読み取り権限を持っていることを確認してください。