OSX Apache에서 금지된 403을 제공하는 동적 가상 호스트

OSX Apache에서 금지된 403을 제공하는 동적 가상 호스트

나는 팔로우했다이 가이드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

두 번째 사이트의 콘텐츠는 무엇입니까?

가능한 이유는 두 가지입니다.

  1. 디렉토리에 없는 경우색인문서(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

이와 동일한 문제가 발생하여 Apache의 기본 설정으로 밝혀졌습니다. httpd.conf에는 이것이 있습니다

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

"모두 거부" 줄을 제거하고 아파치를 다시 시작하세요.

답변3

액세스 거부에 대한 403 오류 상태입니다. 사이트 디렉터리까지의 트리 디렉터리에 대한 권한을 확인해야 합니다.

Apache를 실행하는 사용자에게 디렉터리에 대한 읽기 및 실행 권한과 파일 읽기 권한이 있는지 확인하십시오.

관련 정보