나는 팔로우했다이 가이드foo.dev
웹 폴더로의 직접 연결을 허용하여 OSX에서 동적 가상 호스트를 생성하려고 합니다 /foo
. 내 차이점은 ~/Sites
가이드에서처럼 Mac HD 대신 웹 폴더로 사용하고 있다는 것입니다 . 그것은 설치되어 올바르게 작동한다고 생각되는 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
두 번째 가상 호스트는 .dev의 하위 도메인에 대한 폴더가 존재하는지 여부에 관계없이 everything.dev에 대해 403 Forbidden 오류를 표시합니다.
어떤 아이디어가 있나요?
편집하다:
최신 로그 항목
아파치 오류 로그:
[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
이제 서버가 작동합니다(구성 파일의 오류 로그 디렉터리에 문제가 있었습니다). 하지만 여전히 동적 가상 호스트에 액세스할 수 없습니다.
답변1
두 번째 사이트의 콘텐츠는 무엇입니까?
가능한 이유는 두 가지입니다.
디렉토리에 없는 경우색인문서(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">
작동합니까?
답변2
이와 동일한 문제가 발생하여 Apache의 기본 설정으로 밝혀졌습니다. httpd.conf에는 이것이 있습니다
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
"모두 거부" 줄을 제거하고 아파치를 다시 시작하세요.
답변3
액세스 거부에 대한 403 오류 상태입니다. 사이트 디렉터리까지의 트리 디렉터리에 대한 권한을 확인해야 합니다.
Apache를 실행하는 사용자에게 디렉터리에 대한 읽기 및 실행 권한과 파일 읽기 권한이 있는지 확인하십시오.